lttng-live: handle EINTR and graph cancelation
[babeltrace.git] / plugins / ctf / lttng-live / metadata.c
index 3124ff6c584d3dee2aaad5ed8b91ed9e4dcfe639..d3b7b09567b04ebd8d4583234b618d04a3535624 100644 (file)
@@ -30,6 +30,7 @@
 #include <glib.h>
 #include <babeltrace/compat/uuid-internal.h>
 #include <babeltrace/compat/memstream-internal.h>
+#include <babeltrace/graph/graph.h>
 
 #define BT_LOG_TAG "PLUGIN-CTF-LTTNG-LIVE-METADATA"
 
@@ -155,6 +156,12 @@ enum bt_ctf_lttng_live_iterator_status lttng_live_metadata_update(
                         */
                        lttng_live_unref_trace(metadata->trace);
                }
+               if (errno == EINTR) {
+                       if (bt_graph_is_canceled(session->lttng_live->graph)) {
+                               status = BT_CTF_LTTNG_LIVE_ITERATOR_STATUS_AGAIN;
+                               goto end;
+                       }
+               }
        }
 
        if (bt_close_memstream(&metadata_buf, &size, fp)) {
This page took 0.023415 seconds and 4 git commands to generate.