X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=util%2Fsignal.hpp;h=fab67be63ce8f84c1cd7165ede04172987e71f49;hb=fbdf9f2089a2653c8ea8150af22852ebc61ce42d;hp=e082d7d23613a39c141e6efd8cba463aada0dbda;hpb=9139975f5fe7895259645117b1e0e9a6cb9c27cc;p=m6w6%2Flibmemcached diff --git a/util/signal.hpp b/util/signal.hpp index e082d7d2..fab67be6 100644 --- a/util/signal.hpp +++ b/util/signal.hpp @@ -43,6 +43,16 @@ #include #endif +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (signal_callback_fn)(); + +#ifdef __cplusplus +} +#endif + namespace datadifferential { namespace util { @@ -59,7 +69,6 @@ class SignalThread { uint64_t magic_memory; volatile shutdown_t __shutdown; pthread_mutex_t shutdown_mutex; - pthread_t thread; public: @@ -84,6 +93,13 @@ public: void set_shutdown(shutdown_t arg); bool is_shutdown(); shutdown_t get_shutdown(); + + void sighup(); + void sighup(signal_callback_fn* arg); + +private: + pthread_t thread; + signal_callback_fn* _sighup; }; } /* namespace util */