]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
Merge branch 'refs/heads/t/abtract_sockets'
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index 620367e5f52c0dfd5ff1597e4d688563fa6b546b..c82cd8c32300b27d2bd6c5a8d15bff60e52fb372 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -1406,7 +1406,7 @@ static int setup_tasks_and_schedule(void)
        struct exec_task exec_task = {.task = NULL};
        struct status_task status_task = {.fd = -1};
        struct input_task input_task = {.task = NULL};
-       struct signal_task signal_task = {.task = NULL};
+       struct signal_task *signal_task;
        struct sched sched = {
                .default_timeout = {
                        .tv_sec = conf.timeout_arg  / 1000,
@@ -1435,19 +1435,20 @@ static int setup_tasks_and_schedule(void)
                .context = &input_task,
        }, &sched);
 
-       signal_task.fd = para_signal_init();
+       signal_task = signal_init_or_die();
        para_install_sighandler(SIGINT);
        para_install_sighandler(SIGTERM);
        para_install_sighandler(SIGCHLD);
        para_install_sighandler(SIGUSR1);
-       signal_task.task = task_register(&(struct task_info) {
+       signal_task->task = task_register(&(struct task_info) {
                .name = "signal",
                .pre_select = signal_pre_select,
                .post_select = signal_post_select,
-               .context = &signal_task,
+               .context = signal_task,
        }, &sched);
        ret = schedule(&sched);
        sched_shutdown(&sched);
+       signal_shutdown(signal_task);
        return ret;
 }