Boost logo

Boost Users :

Subject: [Boost-users] [Asio] signal_set not blocking/queueing signals on shutdown
From: Benjamin Shadwick (benshadwick_at_[hidden])
Date: 2014-01-14 11:10:46


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.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net