chiark / gitweb /
fixes
[inn-innduct.git] / backends / innduct.c
index 4d5e74718d1312174163506c460652a384f759d0..1a80ff31a4507c35787e744b2b74f638af0e95a8 100644 (file)
@@ -2632,8 +2632,11 @@ static void *inndcomm_event(oop_source *lp, int fd, oop_event e, void *u) {
   assert(inndcomm_child);
   assert(fd == inndcomm_sentinel_fd);
   int status= xwaitpid(&inndcomm_child, "inndcomm");
   assert(inndcomm_child);
   assert(fd == inndcomm_sentinel_fd);
   int status= xwaitpid(&inndcomm_child, "inndcomm");
+  inndcomm_child= 0;
+  
   cancel_fd_read_except(fd);
   xclose_perhaps(&fd, "inndcomm sentinel pipe",0);
   cancel_fd_read_except(fd);
   xclose_perhaps(&fd, "inndcomm sentinel pipe",0);
+  inndcomm_sentinel_fd= 0;
 
   assert(!flushing_input_file);
 
 
   assert(!flushing_input_file);
 
@@ -3142,13 +3145,13 @@ int main(int argc, char **argv) {
   self_pid= getpid();
   if (self_pid==-1) sysdie("getpid");
 
   self_pid= getpid();
   if (self_pid==-1) sysdie("getpid");
 
-  if (!become_daemon)
-    control_stdio();
-
   statemc_lock();
 
   notice("starting");
 
   statemc_lock();
 
   notice("starting");
 
+  if (!become_daemon)
+    control_stdio();
+
   control_init();
 
   if (!filemon_method_init()) {
   control_init();
 
   if (!filemon_method_init()) {