projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
tests: fix clients tests
[awesomized/libmemcached]
/
util
/
signal.cc
diff --git
a/util/signal.cc
b/util/signal.cc
index c28a4bc44dee04ec4941fc7cabad1008cf545526..8e63016fddde41a5cd140ea27d2551b1f9ce4d2b 100644
(file)
--- a/
util/signal.cc
+++ b/
util/signal.cc
@@
-34,7
+34,7
@@
*
*/
*
*/
-#include <config.h>
+#include <
mem_
config.h>
#include <cassert>
#include <cerrno>
#include <cassert>
#include <cerrno>
@@
-101,6
+101,19
@@
void SignalThread::test()
assert(sigismember(&set, SIGUSR2));
}
assert(sigismember(&set, SIGUSR2));
}
+void SignalThread::sighup(signal_callback_fn* arg)
+{
+ _sighup= arg;
+}
+
+void SignalThread::sighup()
+{
+ if (_sighup)
+ {
+ _sighup();
+ }
+}
+
SignalThread::~SignalThread()
{
if (not is_shutdown())
SignalThread::~SignalThread()
{
if (not is_shutdown())
@@
-142,6
+155,10
@@
static void *sig_thread(void *arg)
case SIGUSR2:
break;
case SIGUSR2:
break;
+ case SIGHUP:
+ context->sighup();
+ break;
+
case SIGABRT:
case SIGINT:
case SIGQUIT:
case SIGABRT:
case SIGINT:
case SIGQUIT:
@@
-172,7
+189,9
@@
static void *sig_thread(void *arg)
SignalThread::SignalThread(bool exit_on_signal_arg) :
_exit_on_signal(exit_on_signal_arg),
magic_memory(MAGIC_MEMORY),
SignalThread::SignalThread(bool exit_on_signal_arg) :
_exit_on_signal(exit_on_signal_arg),
magic_memory(MAGIC_MEMORY),
- thread(pthread_self())
+ __shutdown(SHUTDOWN_RUNNING),
+ thread(pthread_self()),
+ _sighup(NULL)
{
pthread_mutex_init(&shutdown_mutex, NULL);
sigemptyset(&set);
{
pthread_mutex_init(&shutdown_mutex, NULL);
sigemptyset(&set);