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