LINUX.ORG.RU

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

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

В Glib делают так: создается pipe, задаются обработчики, которые делают write(pipe, sig). С другого конца в рамках евент лупа делается read и сигнал обрабатывается уже там, без наложенных ограничений и более-менее красиво.

Нынче модно главный message processing thread будить через eventfd, а не пайпы (если реально только разбудить надо, а не пробросить какие-то результаты из background thread). Для флажка «продолжаем крутиться» смотрим в сторону std::sig_atomic_t.

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

В Glib делают так: создается pipe, задаются обработчики, которые делают write(pipe, sig). С другого конца в рамках евент лупа делается read и сигнал обрабатывается уже там, без наложенных ограничений и более-менее красиво.

Нынче модно главный message processing thread будить через eventfd, а не пайпы (если реально только разбудить надо, а не пробросить какие то результаты из background thread). Для флажка «продолжаем крутиться» смотрим в сторону std::sig_atomic_t.