LINUX.ORG.RU

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

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

Читать man 7 signal до просветления. Особо обращаю внимание на то, что

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

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

Читать man 7 signal до просветления. Особо обращаю внимание на то, что

  1. По умолчанию сигналы вызывают перезапуск системные вызовов (или это только в glibc так?), SA_RESTART скажет об этом больше
  2. Вешаться на SIGINT, а потом рассылать его же кажется не самой хорошей идеей, хотя бы потому что pthread_kill(SIGINT) в теории должен позвать обработчик этого сигнала в «убиваемом» треде и, кажется, тогда наступит неловкая рекурсивная ситуация