if (!p->initialized && io_loop_is_running(ioloop) && !p->external) {
/* log the process exit and kill ourself */
- child_processes_deinit();
+ child_processes_flush();
log_deinit();
i_fatal("Auth process died too early - shutting down");
}
lib_signals_set_handler(SIGCHLD, TRUE, sigchld_handler, NULL);
}
-void child_processes_deinit(void)
+void child_processes_flush(void)
{
/* make sure we log if child processes died unexpectedly */
sigchld_handler(SIGCHLD, NULL);
+}
+
+void child_processes_deinit(void)
+{
+ child_processes_flush();
lib_signals_unset_handler(SIGCHLD, sigchld_handler, NULL);
hash_table_destroy(&processes);
}
child_process_destroy_callback_t *cb);
void child_processes_init(void);
+void child_processes_flush(void);
void child_processes_deinit(void);
#endif