X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=1d67b8b8f503bcaad721371b01c3ef07c6dd7e81;hp=ab7c3c1ba7299dcdb9c237f0b65e63e5f82d7147;hb=82ecf70328a16bedbbb555ca478c7b6b45af9621;hpb=aa9d24a6608f02455eefd1440cad28c7e86913fa diff --git a/server.c b/server.c index ab7c3c1b..1d67b8b8 100644 --- a/server.c +++ b/server.c @@ -237,7 +237,7 @@ out: static void signal_pre_select(struct sched *s, struct task *t) { - struct signal_task *st = container_of(t, struct signal_task, task); + struct signal_task *st = task_context(t); para_fd_set(st->fd, &s->rfds, &s->max_fileno); } @@ -312,10 +312,6 @@ static void init_signal_task(void) static struct signal_task signal_task_struct, *st = &signal_task_struct; - st->task.pre_select = signal_pre_select; - st->task.post_select = signal_post_select; - sprintf(st->task.status, "signal task"); - PARA_NOTICE_LOG("setting up signal handling\n"); st->fd = para_signal_init(); /* always successful */ para_install_sighandler(SIGINT); @@ -324,7 +320,13 @@ static void init_signal_task(void) para_install_sighandler(SIGCHLD); para_sigaction(SIGPIPE, SIG_IGN); add_close_on_fork_list(st->fd); - register_task(&sched, &st->task); + st->task = task_register(&(struct task_info) { + .name = "signal", + .pre_select = signal_pre_select, + .post_select = signal_post_select, + .context = st, + + }, &sched); } static void command_pre_select(struct sched *s, struct task *t)