]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Delete signal events after events processing loop
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 18 Oct 2015 10:24:12 +0000 (11:24 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 18 Oct 2015 10:24:12 +0000 (11:24 +0100)
src/rspamd.c

index bef6df01466277c8caa90079e614e6c9d886547e..3609a3c5c36264c7a36bcdf0c8d69e1652d2c782 100644 (file)
@@ -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) {