osx writer: Switch to the alternative post select method.
authorAndre Noll <maan@systemlinux.org>
Sun, 31 Mar 2013 14:03:19 +0000 (14:03 +0000)
committerAndre Noll <maan@systemlinux.org>
Tue, 30 Apr 2013 12:12:46 +0000 (14:12 +0200)
osx_write.c

index d38e2fb..53e57fa 100644 (file)
@@ -301,7 +301,7 @@ static void osx_write_pre_select(struct sched *s, struct task *t)
        sched_request_timeout_ms(50, s);
 }
 
        sched_request_timeout_ms(50, s);
 }
 
-static void osx_write_post_select(__a_unused struct sched *s, struct task *t)
+static int osx_write_post_select(__a_unused struct sched *s, struct task *t)
 {
        struct writer_node *wn = container_of(t, struct writer_node, task);
        struct private_osx_write_data *powd = wn->private_data;
 {
        struct writer_node *wn = container_of(t, struct writer_node, task);
        struct private_osx_write_data *powd = wn->private_data;
@@ -314,7 +314,7 @@ static void osx_write_post_select(__a_unused struct sched *s, struct task *t)
        if (!powd) {
                ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
                if (ret == 0)
        if (!powd) {
                ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
                if (ret == 0)
-                       return;
+                       return 0;
                if (ret < 0)
                        goto fail;
                ret = core_audio_init(wn);
                if (ret < 0)
                        goto fail;
                ret = core_audio_init(wn);
@@ -337,7 +337,7 @@ static void osx_write_post_select(__a_unused struct sched *s, struct task *t)
                ret = 0;
        mutex_unlock(powd->mutex);
        if (ret >= 0)
                ret = 0;
        mutex_unlock(powd->mutex);
        if (ret >= 0)
-               return;
+               return 0;
 fail:
        assert(ret < 0);
        if (powd && powd->callback_btrn) {
 fail:
        assert(ret < 0);
        if (powd && powd->callback_btrn) {
@@ -348,7 +348,7 @@ fail:
        }
        btr_remove_node(&wn->btrn);
        PARA_NOTICE_LOG("%s\n", para_strerror(-ret));
        }
        btr_remove_node(&wn->btrn);
        PARA_NOTICE_LOG("%s\n", para_strerror(-ret));
-       t->error = ret;
+       return ret;
 }
 
 /**
 }
 
 /**
@@ -363,7 +363,8 @@ void osx_write_init(struct writer *w)
        osx_write_cmdline_parser_init(&dummy);
        w->close = osx_write_close;
        w->pre_select = osx_write_pre_select;
        osx_write_cmdline_parser_init(&dummy);
        w->close = osx_write_close;
        w->pre_select = osx_write_pre_select;
-       w->post_select = osx_write_post_select;
+       w->new_post_select = osx_write_post_select;
+       w->post_select = NULL;
        w->parse_config_or_die = osx_write_parse_config_or_die;
        w->free_config = osx_free_config;
        w->help = (struct ggo_help) {
        w->parse_config_or_die = osx_write_parse_config_or_die;
        w->free_config = osx_free_config;
        w->help = (struct ggo_help) {