История изменений
Исправление kawaii_neko, (текущая версия) :
Читать man 7 signal до просветления. Особо обращаю внимание на то, что
- По умолчанию сигналы вызывают перезапуск системных вызовов (или это только в glibc так?), так что твой кейс с EINTR никогда не сработает. Кстати, ты удивишься, сколько всего может сломаться, если вдруг начнет получать EINTR. Больше узнать об этом можно по ключевом слову
SA_RESTART
вman 2 sigaction
- Вешаться на
SIGINT
, а потом рассылать его же кажется не самой хорошей идеей, хотя бы потому чтоpthread_kill(SIGINT)
в теории должен позвать обработчик этого сигнала в «убиваемом» треде и, кажется, тогда наступит неловкая рекурсивная ситуация
Исходная версия kawaii_neko, :
Читать man 7 signal до просветления. Особо обращаю внимание на то, что
- По умолчанию сигналы вызывают перезапуск системные вызовов (или это только в glibc так?),
SA_RESTART
скажет об этом больше - Вешаться на
SIGINT
, а потом рассылать его же кажется не самой хорошей идеей, хотя бы потому чтоpthread_kill(SIGINT)
в теории должен позвать обработчик этого сигнала в «убиваемом» треде и, кажется, тогда наступит неловкая рекурсивная ситуация