Передать ошибку "наверх" из многопоточнй библиотеки
От: AlexGin Беларусь  
Дата: 23.10.16 10:00
Оценка:
Доброе время суток, уважаемые коллеги!

Я и моя команда разрабатываем библиотеку классов, которая выполняет обработку данных.
Эта обработка — многопоточная.
OS — Windows 7 / 64 + SP1.

Заказчик настаивает, на варианте, когда в случае ошибки ему будут поступать exception-s.
Мне, конечно же, несложно выполнить throw, однако при этом во "внешнем" (головном) потоке исключения на будет.

Пока мы планируем ввести глобальный флаг (скорее даже Event), который устанавливаем при ошибке.
Естественно, этот глобальный (либо статический) объект мы защитим критической секцией.
Далее, код, выполняемый в головном потоке "на нашей стороне" будет сканировать этот Event (с прокачкой windows-messages) и там уже,
если имела место проблема, выполнять throw...

В то же время, я чувствую, что есть более удачные варианты (без глобальных или статических переменных)...

ПРИМЕЧАНИЕ:
Мы все пишем на MSVC-2015, однако Заказчик настаивает только на применении стандарта C++03
В то же время, мы широко используем boost и STL.
С этими библиотеками Заказчик хорошо знаком.

Заранее благодарю, за любые соображения по данному вопросу!
Отредактировано 23.10.2016 10:21 AlexGin . Предыдущая версия . Еще …
Отредактировано 23.10.2016 10:17 AlexGin . Предыдущая версия .
Отредактировано 23.10.2016 10:01 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.