X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fsignal.cc;h=51f42a4e1439ab29140bf9518f8970427ed59afb;hb=a6125e493c92ad44941345da1e123fa6e9b8d272;hp=53a436be77ecbd964320fd46743809a4e49fb6f5;hpb=3893029e70c654f4fcf3bf8f8ba5b404afc6d446;p=awesomized%2Flibmemcached diff --git a/libtest/signal.cc b/libtest/signal.cc index 53a436be..51f42a4e 100644 --- a/libtest/signal.cc +++ b/libtest/signal.cc @@ -34,7 +34,7 @@ * */ -#include +#include "libtest/yatlcon.h" #include #include @@ -91,6 +91,7 @@ void SignalThread::test() assert(magic_memory == MAGIC_MEMORY); if (bool(getenv("LIBTEST_IN_GDB")) == false) { + assert(sigismember(&set, SIGALRM)); assert(sigismember(&set, SIGABRT)); assert(sigismember(&set, SIGQUIT)); assert(sigismember(&set, SIGINT)); @@ -151,6 +152,14 @@ static void *sig_thread(void *arg) switch (sig) { + case SIGALRM: + Error << "SIGALRM"; + if (gdb_is_caller()) + { + abort(); + } + exit(EXIT_SKIP); + case SIGVTALRM: Error << "SIGVTALRM was called"; context->unblock(); @@ -194,6 +203,7 @@ SignalThread::SignalThread() : sigemptyset(&set); if (bool(getenv("LIBTEST_IN_GDB")) == false) { + sigaddset(&set, SIGALRM); sigaddset(&set, SIGABRT); sigaddset(&set, SIGQUIT); sigaddset(&set, SIGINT);