]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - ao_write.c
btr: Remove btr_free_node().
[paraslash.git] / ao_write.c
index 93861ab63f50baf478bf74fe6f216fce6cf39f53..a45d4fb946eea25087746fc786712229dae0dacc 100644 (file)
@@ -280,7 +280,6 @@ static void aow_post_select(__a_unused struct sched *s,
                struct task *t)
 {
        struct writer_node *wn = container_of(t, struct writer_node, task);
-       struct btr_node *btrn = wn->btrn;
        struct private_aow_data *pawd = wn->private_data;
        int ret;
 
@@ -288,14 +287,14 @@ static void aow_post_select(__a_unused struct sched *s,
                int32_t rate, ch, format;
                struct btr_node_description bnd;
 
-               ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
+               ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
                if (ret < 0)
                        goto remove_btrn;
                if (ret == 0)
                        return;
-               get_btr_sample_rate(btrn, &rate);
-               get_btr_channels(btrn, &ch);
-               get_btr_sample_format(btrn, &format);
+               get_btr_sample_rate(wn->btrn, &rate);
+               get_btr_channels(wn->btrn, &ch);
+               get_btr_sample_format(wn->btrn, &format);
                ret = aow_init(wn, rate, ch, format);
                if (ret < 0)
                        goto remove_btrn;
@@ -303,7 +302,7 @@ static void aow_post_select(__a_unused struct sched *s,
 
                /* set up thread btr node */
                bnd.name = "ao_thread_btrn";
-               bnd.parent = btrn;
+               bnd.parent = wn->btrn;
                bnd.child = NULL;
                bnd.handler = NULL;
                bnd.context = pawd;
@@ -316,27 +315,24 @@ static void aow_post_select(__a_unused struct sched *s,
                return;
        }
        pthread_mutex_lock(&pawd->mutex);
-       ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
+       ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
        if (ret > 0) {
-               btr_pushdown(btrn);
+               btr_pushdown(wn->btrn);
                pthread_cond_signal(&pawd->data_available);
        }
        pthread_mutex_unlock(&pawd->mutex);
        if (ret >= 0)
                goto out;
        pthread_mutex_lock(&pawd->mutex);
-       btr_remove_node(btrn);
-       btrn = NULL;
+       btr_remove_node(&wn->btrn);
        PARA_INFO_LOG("waiting for thread to terminate\n");
        pthread_cond_signal(&pawd->data_available);
        pthread_mutex_unlock(&pawd->mutex);
        pthread_join(pawd->thread, NULL);
 remove_thread_btrn:
-       btr_remove_node(pawd->thread_btrn);
-       btr_free_node(pawd->thread_btrn);
+       btr_remove_node(&pawd->thread_btrn);
 remove_btrn:
-       if (btrn)
-               btr_remove_node(btrn);
+       btr_remove_node(&wn->btrn);
 out:
        t->error = ret;
 }