Re: Передать ошибку "наверх" из многопоточнй библиотеки
От: Evgeny.Panasyuk Россия  
Дата: 23.10.16 12:28
Оценка: 21 (2)
Здравствуйте, AlexGin, Вы писали:

AG>Я и моя команда разрабатываем библиотеку классов, которая выполняет обработку данных.

AG>Эта обработка — многопоточная.
AG>OS — Windows 7 / 64 + SP1.
AG>Заказчик настаивает, на варианте, когда в случае ошибки ему будут поступать exception-s.

Какого типа обработка? Параллельная или конкурентная?
Главный поток ждёт результата или продолжает работать переодически проверяя сообщения? Какое вообще взаимодействие с их кодом?

Как уже выше сказали, нужно перехватывать исключения и передавать в другой поток через exception_ptr.
Если подходят promise + future — то там вся передача уже реализована, смотри std/boost::promise::set_exception.

AG>ПРИМЕЧАНИЕ:

AG>Мы все пишем на MSVC-2015, однако Заказчик настаивает только на применении стандарта C++03
AG>В то же время, мы широко используем boost и STL.
AG>С этими библиотеками Заказчик хорошо знаком.

В Boost для C++03 есть и exception_ptr, и promise+future.
Отредактировано 23.10.2016 12:55 Evgeny.Panasyuk . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.