docs: memparse (fix #80) [ci skip]
[awesomized/libmemcached] / libtest / signal.cc
index 53a436be77ecbd964320fd46743809a4e49fb6f5..70012f1d94ad672e8a01d036e7e491ccd4662b66 100644 (file)
@@ -34,7 +34,7 @@
  *
  */
 
-#include <config.h>
+#include "libtest/yatlcon.h"
 #include <libtest/common.h>
 
 #include <csignal>
@@ -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);