vlserver: convert the vlserver to opr softsig 96/11996/8
authorMichael Meffie <mmeffie@sinenomine.net>
Wed, 2 Sep 2015 20:32:54 +0000 (16:32 -0400)
committerBenjamin Kaduk <kaduk@mit.edu>
Mon, 25 Apr 2016 04:00:19 +0000 (00:00 -0400)
Convert the vlserver from regular signal handling to the opr soft
signal handling when built with pthreads. This makes it safe to call
pthread functions within signal handlers.

Change-Id: Ic9bd841c4796bd64b603505541da7e767afda83e
Reviewed-on: https://gerrit.openafs.org/11996
Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/vlserver/vlserver.c

index 04284a9..f64f97e 100644 (file)
 #include <afs/stds.h>
 
 #include <roken.h>
+#ifdef AFS_PTHREAD_ENV
+# include <opr/softsig.h>
+# include <afs/procmgmt_softsig.h> /* must come after softsig.h */
+#endif
 
 #ifdef AFS_NT40_ENV
 #include <WINNT/afsevent.h>
@@ -362,7 +366,12 @@ main(int argc, char **argv)
     serverLogSyslogTag = "vlserver";
 #endif
     OpenLog(logFile);  /* set up logging */
+#ifdef AFS_PTHREAD_ENV
+    opr_softsig_Init();
+    SetupLogSoftSignals();
+#else
     SetupLogSignals();
+#endif
 
     tdir = afsconf_Open(configDir);
     if (!tdir) {