История изменений
Исправление 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
и сигнал обрабатывается уже там, без наложенных ограничений и более-менее красиво.