ao: Switch to the alternative post select method.
authorAndre Noll <maan@systemlinux.org>
Sun, 31 Mar 2013 13:56:49 +0000 (13:56 +0000)
committerAndre Noll <maan@systemlinux.org>
Tue, 30 Apr 2013 12:12:45 +0000 (14:12 +0200)
ao_write.c

index ffe8669..3f681eb 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) {