X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fsignal.cc;h=70012f1d94ad672e8a01d036e7e491ccd4662b66;hb=9351ece659f57ee704b5f0ccfd4b531677ff36f8;hp=53a436be77ecbd964320fd46743809a4e49fb6f5;hpb=3893029e70c654f4fcf3bf8f8ba5b404afc6d446;p=awesomized%2Flibmemcached diff --git a/libtest/signal.cc b/libtest/signal.cc index 53a436be..70012f1d 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,10 +152,14 @@ static void *sig_thread(void *arg) switch (sig) { + case SIGALRM: case SIGVTALRM: - Error << "SIGVTALRM was called"; - context->unblock(); - raise(SIGVTALRM); + Error << strsignal(sig); + if (gdb_is_caller()) + { + abort(); + } + exit(EXIT_FAILURE); case SIGABRT: case SIGUSR2: @@ -194,6 +199,7 @@ SignalThread::SignalThread() : sigemptyset(&set); if (bool(getenv("LIBTEST_IN_GDB")) == false) { + sigaddset(&set, SIGALRM); sigaddset(&set, SIGABRT); sigaddset(&set, SIGQUIT); sigaddset(&set, SIGINT);