LINUX.ORG.RU

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

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

Красиво – никак, сигналы не для красивостей делали. По ссылке чушь, там не учитывается налагаемое на обработчик сигнала условие async-signal-safe, и я что-то не верю, что server.shutdown() будет удовлетворять ему.

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

Собственно, если glib уже используется в проекте, есть смысл воспользоваться функциями оттуда.

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

Красиво – никак, сигналы не для красивостей делали. По ссылке чушь, там не учитывается налагаемое на обработчик сигнала условие async-signal-safe, и я что-то не верю, что server.shutdown() будет удовлетворять ему.

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