X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fsignal.cc;h=70012f1d94ad672e8a01d036e7e491ccd4662b66;hb=e0871342c7fdc7cb9c518d686aab4519c1bda764;hp=1c4ecb7381c3fddfc790563e7a65ea2268540ed9;hpb=97b73d47e6a3d5729ba13304ff355a737a34f1b4;p=awesomized%2Flibmemcached diff --git a/libtest/signal.cc b/libtest/signal.cc index 1c4ecb73..70012f1d 100644 --- a/libtest/signal.cc +++ b/libtest/signal.cc @@ -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);