LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

В таком случае поток должен что-то куда-то срыгнуть, что в конечном счете повлечет за собой shutdown()

Можешь послать сигнал в главный поток, можешь поднять какой-нибудь флаг, можешь даже объект исключения под локом добавить в общий вектор а в главном потоке вытащить его и даже rethrow'нуть - как тебе будет удобнее.

Ну и как я уже говорил - несколько раз я попадал на такое что сигнал был перехвачен «как-бы в контексте» дочернего потока.

Если ты заблочил сигналы в дочерних потоках, такого не может быть.

PS. Да, можешь посмотреть на promise/feature из c++11, они изкоробки умеют удобно передавать исключения из потоков.

Исходная версия slovazap, :

В таком случае поток должен что-то куда-то срыгнуть, что в конечном счете повлечет за собой shutdown()

Можешь послать сигнал в главный поток, можешь поднять какой-нибудь флаг, можешь даже объект исключения под локом добавить в общий вектор а в главном потоке вытащить его и даже rethrow'нуть - как тебе будет удобнее.

Ну и как я уже говорил - несколько раз я попадал на такое что сигнал был перехвачен «как-бы в контексте» дочернего потока.

Если ты заблочил сигналы в дочерних потоках, такого не может быть.