I've written an io_service+signal_set signal handling implementation in a thread of my application that triggers an orderly shutdown when (among other things) the user presses Ctrl+C.

According to the Boost.Asio documentation for signal_set ( http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/signal_set.html ), just having a signal_set (with inherent dependency on an io_service) with registered signals and not in a wait state is supposed to be enough to cause signals to be blocked/queued.

After I stop the io_service and cancel the wait state on the signal_set, however, it appears that signal blocking/queueing is no longer occurring. I say this because hitting Ctrl+C during orderly shutdown after the io_service has stopped causes my application to instantly terminate (and in one case generate a core file).

Is there something about stopping the io_service and/or canceling the async wait on the signal_set that is causing the note about signal queueing in the signal_set documentation to no longer apply?

Thanks in advance.