]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - audiod.c
fix multiple simultaneous writers
[paraslash.git] / audiod.c
index f653c4f7dad5997778aaf45613920b3f774813cd..0f8fb1a7bd5bba86cc046dbd3224053ef5b079d2 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -454,7 +454,8 @@ static void setup_signal_handling(void)
        para_install_sighandler(SIGTERM);
        para_install_sighandler(SIGCHLD);
        para_install_sighandler(SIGHUP);
-       signal(SIGPIPE, SIG_IGN);
+       para_install_sighandler(SIGPIPE);
+//     signal(SIGPIPE, SIG_IGN);
 }
 
 static void audiod_status_dump(void)
@@ -653,7 +654,6 @@ static void open_filters(int slot_num)
        s->fc->task.pre_select = filter_pre_select;
        s->fc->task.event_handler = filter_event_handler;
        s->fc->task.private_data = s->fc;
-       s->fc->task.flags = 0;
        s->fc->eof = 0;
 
        s->receiver_node->output_eof = &s->fc->eof;
@@ -737,7 +737,6 @@ static void open_writers(int slot_num)
        for (i = 0; i < a->num_writers; i++) {
                s->wng->writer_nodes[i].conf = a->writer_conf[i];
                s->wng->writer_nodes[i].writer = a->writers[i];
-               sprintf(s->wng->writer_nodes[i].task.status, "writer_node");
        }
        ret = wng_open(s->wng);
        if (ret < 0) {
@@ -788,8 +787,7 @@ static void open_receiver(int format)
        rn->task.pre_select = a->receiver->pre_select;
        rn->task.post_select = a->receiver->post_select;
        rn->task.event_handler = rn_event_handler;
-       rn->task.flags = 0;
-       sprintf(rn->task.status, "receiver node");
+       sprintf(rn->task.status, "%s receiver node", rn->receiver->name);
        register_task(&rn->task);
 }
 
@@ -997,7 +995,6 @@ static void init_audiod_task(struct task *t)
        t->post_select = audiod_post_select;
        t->event_handler = NULL;
        t->private_data = t;
-       t->flags = 0;
        sprintf(t->status, "audiod task");
 }
 
@@ -1581,7 +1578,6 @@ void signal_setup_default(struct signal_task *st)
        st->task.pre_select = signal_pre_select;
        st->task.post_select = signal_post_select;
        st->task.private_data = st;
-       st->task.flags = 0;
        sprintf(st->task.status, "signal task");
 }
 
@@ -1614,7 +1610,6 @@ static void init_command_task(struct command_task *ct)
        ct->task.post_select = command_post_select;
        ct->task.event_handler = NULL;
        ct->task.private_data = ct;
-       ct->task.flags = 0;
        ct->fd = audiod_get_socket(); /* doesn't return on errors */
        sprintf(ct->task.status, "command task");
 }