Update of /cvsroot/monetdb/sql/src/backends/monet5/merovingian
In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24829

Modified Files:
        merovingian_handlers.c 
Log Message:
report signal names, instead of just numbers

Index: merovingian_handlers.c
===================================================================
RCS file: 
/cvsroot/monetdb/sql/src/backends/monet5/merovingian/merovingian_handlers.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- merovingian_handlers.c      7 Jan 2010 15:24:31 -0000       1.2
+++ merovingian_handlers.c      23 Mar 2010 14:03:46 -0000      1.3
@@ -17,6 +17,36 @@
  * All Rights Reserved.
  */
 
+static char *sigint  = "SIGINT";
+static char *sigterm = "SIGTERM";
+static char *sigquit = "SIGQUIT";
+static char *sighup  = "SIGHUP";
+static char *sigabrt = "SIGABRT";
+static char *sigsegv = "SIGSEGV";
+static char *sigkill = "SIGKILL";
+static char *
+sig2str(int sig)
+{
+       switch (sig) {
+               case SIGINT:
+                       return(sigint);
+               case SIGTERM:
+                       return(sigterm);
+               case SIGQUIT:
+                       return(sigquit);
+               case SIGHUP:
+                       return(sighup);
+               case SIGABRT:
+                       return(sigabrt);
+               case SIGSEGV:
+                       return(sigsegv);
+               case SIGKILL:
+                       return(sigkill);
+               default:
+                       return(NULL);
+       }
+}
+
 /**
  * Handler for SIGINT, SIGTERM and SIGQUIT.  This starts a graceful
  * shutdown of merovingian.
@@ -24,21 +54,12 @@
 static void
 handler(int sig)
 {
-       char *signame = NULL;
-       switch (sig) {
-               case SIGINT:
-                       signame = "SIGINT";
-               break;
-               case SIGTERM:
-                       signame = "SIGTERM";
-               break;
-               case SIGQUIT:
-                       signame = "SIGQUIT";
-               break;
-               default:
-                       assert(0);
+       char *signame = sig2str(sig);
+       if (signame == NULL) {
+               Mfprintf(stdout, "caught signal %d, starting shutdown 
sequence\n", sig);
+       } else {
+               Mfprintf(stdout, "caught %s, starting shutdown sequence\n", 
signame);
        }
-       Mfprintf(stdout, "caught %s, starting shutdown sequence\n", signame);
        _mero_keep_listening = 0;
 }
 
@@ -162,9 +183,14 @@
                                                "exit status %d\n", p->dbname,
                                                (long long int)p->pid, 
si->si_status);
                        } else if (si->si_code == CLD_KILLED) {
+                               char *sigstr = sig2str(si->si_status);
+                               if (sigstr == NULL) {
+                                       sigstr = alloca(sizeof(char) * 8);
+                                       snprintf(sigstr, 8, "%d", 
si->si_status);
+                               }
                                Mfprintf(stdout, "database '%s' (%lld) was 
killed by signal "
-                                               "%d\n", p->dbname,
-                                               (long long int)p->pid, 
si->si_status);
+                                               "%s\n", p->dbname,
+                                               (long long int)p->pid, sigstr);
                        } else if (si->si_code == CLD_DUMPED) {
                                Mfprintf(stdout, "database '%s' (%lld) has 
crashed "
                                                "(dumped core)\n", p->dbname,


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to