summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-10-18 11:24:12 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-10-18 11:24:12 +0100
commita1ff4d1eca8578d3da6fbb7ede00e007e9a798d8 (patch)
treeba8faf9f89a47566b3292978fdb57149f453b3e3
parent8793b4a432401f37898b0ea835477ab39b01d311 (diff)
downloadrspamd-a1ff4d1eca8578d3da6fbb7ede00e007e9a798d8.tar.gz
rspamd-a1ff4d1eca8578d3da6fbb7ede00e007e9a798d8.zip
Delete signal events after events processing loop
-rw-r--r--src/rspamd.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rspamd.c b/src/rspamd.c
index bef6df014..3609a3c5c 100644
--- a/src/rspamd.c
+++ b/src/rspamd.c
@@ -1071,6 +1071,12 @@ main (gint argc, gchar **argv, gchar **env)
/* We need to block signals unless children are waited for */
rspamd_worker_block_signals ();
+ event_del (&term_ev);
+ event_del (&int_ev);
+ event_del (&hup_ev);
+ event_del (&cld_ev);
+ event_del (&usr1_ev);
+
if (control_fd != -1) {
event_del (&control_ev);
close (control_fd);
@@ -1091,13 +1097,13 @@ main (gint argc, gchar **argv, gchar **env)
/* Wait for workers termination */
g_hash_table_foreach_remove (rspamd_main->workers, wait_for_workers, NULL);
- event_del (&term_ev);
event_set (&term_ev, -1, EV_TIMEOUT|EV_PERSIST,
rspamd_final_term_handler, rspamd_main);
event_base_set (ev_base, &term_ev);
event_add (&term_ev, &term_tv);
event_base_loop (ev_base, 0);
+ event_del (&term_ev);
/* Maybe save roll history */
if (rspamd_main->cfg->history_file) {