]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - vss.c
daemon: Introduce log mutex.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 84f5ada55626e8f446458fff1fba17b1973fb66d..55eaf2eb0525d402dad6d3b47afb3e8b0241dad3 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -1083,6 +1083,9 @@ static int vss_post_select(struct sched *s, void *context)
        int ret, i;
        struct vss_task *vsst = context;
 
+       ret = task_get_notification(vsst->task);
+       if (ret < 0)
+               return ret;
        if (!vsst->map || vss_next() || vss_paused() || vss_repos()) {
                /* shut down senders and fec clients */
                struct fec_client *fc, *tmp;
@@ -1185,3 +1188,20 @@ void vss_init(int afs_socket, struct sched *s)
                .context = vsst,
        }, s);
 }
+
+/**
+ * Turn off the virtual streaming system.
+ *
+ * This is only executed on exit. It calls the ->shutdowwn method of all senders.
+ */
+void vss_shutdown(void)
+{
+       int i;
+
+       FOR_EACH_SENDER(i) {
+               if (!senders[i]->shutdown)
+                       continue;
+               PARA_NOTICE_LOG("shutting down %s sender\n", senders[i]->name);
+               senders[i]->shutdown();
+       }
+}