c++ without exceptions and setjmp subj
От: jyuyjiyuijyu  
Дата: 13.12.11 17:42
Оценка:
Всем привет

собственно можно использовать сипласплас но только без исключений
есть класс его методы активно работают с кучей также есть группа функций
создающая объекты этого класса и вызывающая его методы очень много раз
линейно формируются пакеты особого формата что бы упростить обработку
ошибок вшил в каждый объект jmp_buf
struct ...
{
    jmp_buf ...
}


...func...
{
    ... subj;
    
    if (setjmp(subj.jbuf))
        return
    
    subj.method()
    subj.method()
    subj.method()
    subj.method()
    subj.method()
    subj.method()
    subj.method()
    subj.method()
    subj.method()

    return
}

в методе если получили отказ в памяти пишем в лог (надеемся что получится так как память при этом не выделяется просто вызов WriteFile с хендлом Mailslot'а он сам заботится о синхронизации записей и пересылка сообщения об ошибке в другой процесс) и делаем longjmp в итоге вызывающая функция бросает формировать пакет и завершается

вопрос: что думаете обо всем об этом ?
P.S nt 5.1 x86 msvc 2008


18.12.11 14:33: Перенесено из 'C/C++'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.