summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-03-18 13:10:36 -0700
committerSage Weil <sage@inktank.com>2013-03-18 13:10:36 -0700
commit53c1c4827e59ad3aa17969ca2ccdf4072e8ecb97 (patch)
tree68471d4fbf963ac17ba5a631972053e366ca72a7
parenta13ae372c0729a25c35a7a17bc98ac732f511aaf (diff)
downloadceph-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.cc6
-rw-r--r--src/global/signal_handler.h3
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);