diff options
author | Sage Weil <sage@inktank.com> | 2013-03-18 13:10:36 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-03-18 13:10:36 -0700 |
commit | 53c1c4827e59ad3aa17969ca2ccdf4072e8ecb97 (patch) | |
tree | 68471d4fbf963ac17ba5a631972053e366ca72a7 | |
parent | a13ae372c0729a25c35a7a17bc98ac732f511aaf (diff) | |
download | ceph-53c1c4827e59ad3aa17969ca2ccdf4072e8ecb97.tar.gz |
signal_handler: add func to queue an async signal
For example, queue a SIGINT without actually sending the signal via the
OS.
Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r-- | src/global/signal_handler.cc | 6 | ||||
-rw-r--r-- | src/global/signal_handler.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/global/signal_handler.cc b/src/global/signal_handler.cc index 2a6260da66d..25f1a0a1992 100644 --- a/src/global/signal_handler.cc +++ b/src/global/signal_handler.cc @@ -325,6 +325,12 @@ void shutdown_async_signal_handler() g_signal_handler = NULL; } +void queue_async_signal(int signum) +{ + assert(g_signal_handler); + g_signal_handler->queue_signal(signum); +} + void register_async_signal_handler(int signum, signal_handler_t handler) { assert(g_signal_handler); diff --git a/src/global/signal_handler.h b/src/global/signal_handler.h index 8acfaed1a4c..3a11f54315e 100644 --- a/src/global/signal_handler.h +++ b/src/global/signal_handler.h @@ -35,6 +35,9 @@ void init_async_signal_handler(); /// shutdown async signal handler framework void shutdown_async_signal_handler(); +/// queue an async signal +void queue_async_signal(int signum); + /// install a safe, async, callback for the given signal void register_async_signal_handler(int signum, signal_handler_t handler); void register_async_signal_handler_oneshot(int signum, signal_handler_t handler); |