ao: Switch to the alternative post select method.
[paraslash.git] / ao_write.c
index ffe86699e490c61373ded14761ad4e3f58f8eaff..3f681eb83aaca4f74c1c3d0d744bf9896fc24ccb 100644 (file)
@@ -276,7 +276,7 @@ fail:
        return -E_AO_PTHREAD;
 }
 
-static void aow_post_select(__a_unused struct sched *s,
+static int aow_post_select(__a_unused struct sched *s,
                struct task *t)
 {
        struct writer_node *wn = container_of(t, struct writer_node, task);
@@ -291,7 +291,7 @@ static void aow_post_select(__a_unused struct sched *s,
                if (ret < 0)
                        goto remove_btrn;
                if (ret == 0)
-                       return;
+                       return 0;
                get_btr_sample_rate(wn->btrn, &rate);
                get_btr_channels(wn->btrn, &ch);
                get_btr_sample_format(wn->btrn, &format);
@@ -312,7 +312,7 @@ static void aow_post_select(__a_unused struct sched *s,
                ret = aow_create_thread(wn);
                if (ret < 0)
                        goto remove_thread_btrn;
-               return;
+               return 0;
        }
        pthread_mutex_lock(&pawd->mutex);
        ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
@@ -334,7 +334,7 @@ remove_thread_btrn:
 remove_btrn:
        btr_remove_node(&wn->btrn);
 out:
-       t->error = ret;
+       return ret;
 }
 
 __malloc static void *aow_parse_config_or_die(int argc, char **argv)
@@ -368,7 +368,8 @@ void ao_write_init(struct writer *w)
        ao_write_cmdline_parser_init(&dummy);
        w->close = aow_close;
        w->pre_select = aow_pre_select;
-       w->post_select = aow_post_select;
+       w->new_post_select = aow_post_select;
+       w->post_select = NULL;
        w->parse_config_or_die = aow_parse_config_or_die;
        w->free_config = aow_free_config;
        w->help = (struct ggo_help) {