sched: Allow more than one running scheduler instance.
[paraslash.git] / write.c
diff --git a/write.c b/write.c
index 3b5f2d193f31ddc1d8c130703637810f807f255f..afaad951922b0e02a973913327e2d92ee39d2631 100644 (file)
--- a/write.c
+++ b/write.c
@@ -186,7 +186,7 @@ __noreturn static void print_help_and_die(void)
  * \return Standard.
  */
 static void setup_writer_node(const char *arg, struct btr_node *parent,
-               struct writer_node *wn)
+               struct writer_node *wn, struct sched *s)
 {
        if (arg)
                wn->conf = check_writer_arg_or_die(arg, &wn->writer_num);
@@ -194,7 +194,7 @@ static void setup_writer_node(const char *arg, struct btr_node *parent,
                wn->writer_num = DEFAULT_WRITER;
                wn->conf = writers[DEFAULT_WRITER].parse_config_or_die("");
        }
-       register_writer_node(wn, parent);
+       register_writer_node(wn, parent, s);
 }
 
 static int setup_and_schedule(void)
@@ -208,7 +208,7 @@ static int setup_and_schedule(void)
        sit.btrn = btr_new_node(&(struct btr_node_description)
                EMBRACE(.name = "stdin"));
        stdin_set_defaults(&sit);
-       register_task(&sit.task);
+       register_task(&s, &sit.task);
 
        cwt->state = CWS_NEED_HEADER;
        cwt->min_iqs = WAV_HEADER_LEN;
@@ -219,17 +219,17 @@ static int setup_and_schedule(void)
        cwt->task.pre_select = check_wav_pre_select;
        cwt->task.post_select = check_wav_post_select;
        cwt->task.error = 0;
-       register_task(&cwt->task);
+       register_task(&s, &cwt->task);
 
        if (!conf.writer_given) {
                wns = para_calloc(sizeof(*wns));
-               setup_writer_node(NULL, cwt->btrn, wns);
+               setup_writer_node(NULL, cwt->btrn, wns, &s);
                i = 1;
        } else {
                wns = para_calloc(conf.writer_given * sizeof(*wns));
                for (i = 0; i < conf.writer_given; i++)
                        setup_writer_node(conf.writer_arg[i], cwt->btrn,
-                               wns + i);
+                               wns + i, &s);
        }
 
        s.default_timeout.tv_sec = 10;