]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
task_register() conversion: signal task
[paraslash.git] / audiod.c
index 1d8cc4c1a76c7622a59abd1de2b4b7c678bc4925..afdb97f7a9ea4b135378954d974e44b234ef4633 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1006,7 +1006,7 @@ err:
 
 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);
 }
 
@@ -1025,13 +1025,6 @@ static int signal_post_select(struct sched *s, __a_unused struct task *t)
        return 0;
 }
 
-static void signal_setup_default(struct signal_task *st)
-{
-       st->task.pre_select = signal_pre_select;
-       st->task.post_select = signal_post_select;
-       sprintf(st->task.status, "signal task");
-}
-
 static void command_pre_select(struct sched *s, struct task *t)
 {
        struct command_task *ct = container_of(t, struct command_task, task);
@@ -1422,7 +1415,6 @@ int main(int argc, char *argv[])
        FOR_EACH_SLOT(i)
                clear_slot(i);
        setup_signal_handling();
-       signal_setup_default(sig_task);
 
        init_status_task(stat_task);
        init_command_task(cmd_task);
@@ -1430,7 +1422,12 @@ int main(int argc, char *argv[])
        if (conf.daemon_given)
                daemonize(false /* parent exits immediately */);
 
-       register_task(&sched, &sig_task->task);
+       sig_task->task = task_register(&(struct task_info) {
+               .name = "signal",
+               .pre_select = signal_pre_select,
+               .post_select = signal_post_select,
+               .context = sig_task,
+       }, &sched);
        register_task(&sched, &cmd_task->task);
        register_task(&sched, &stat_task->task);
        sched.default_timeout.tv_sec = 2;