X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fplugins%2Fctf%2Flttng-live%2Fmetadata.c;h=787fc0b322da0c39d68494b636c852a6e6ec8876;hb=403657fd5ba02ee6a241f29c856e6846b9cf8503;hp=de8f3dc9a00b952eca4df3b8e105277b9c99fc48;hpb=92e57dbc7464b207d2e81d0844983c550524f10e;p=babeltrace.git diff --git a/src/plugins/ctf/lttng-live/metadata.c b/src/plugins/ctf/lttng-live/metadata.c index de8f3dc9..787fc0b3 100644 --- a/src/plugins/ctf/lttng-live/metadata.c +++ b/src/plugins/ctf/lttng-live/metadata.c @@ -154,9 +154,15 @@ enum lttng_live_iterator_status lttng_live_metadata_update( /* Open for writing */ fp = bt_open_memstream(&metadata_buf, &size); if (!fp) { - BT_COMP_LOGE_APPEND_CAUSE_ERRNO(self_comp, - "Metadata open_memstream", "."); - goto error; + if (errno == EINTR && + lttng_live_graph_is_canceled(session->lttng_live_msg_iter)) { + status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN; + } else { + BT_COMP_LOGE_APPEND_CAUSE_ERRNO(self_comp, + "Metadata open_memstream", "."); + status = LTTNG_LIVE_ITERATOR_STATUS_ERROR; + } + goto end; } keep_receiving = true; @@ -222,9 +228,15 @@ enum lttng_live_iterator_status lttng_live_metadata_update( fp = bt_fmemopen(metadata_buf, len_read, "rb"); if (!fp) { - BT_COMP_LOGE_APPEND_CAUSE_ERRNO(self_comp, - "Cannot memory-open metadata buffer", "."); - goto error; + if (errno == EINTR && + lttng_live_graph_is_canceled(session->lttng_live_msg_iter)) { + status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN; + } else { + BT_COMP_LOGE_APPEND_CAUSE_ERRNO(self_comp, + "Cannot memory-open metadata buffer", "."); + status = LTTNG_LIVE_ITERATOR_STATUS_ERROR; + } + goto end; } /* @@ -277,13 +289,7 @@ enum lttng_live_iterator_status lttng_live_metadata_update( goto end; error: - if (errno == EINTR) { - if (lttng_live_graph_is_canceled(session->lttng_live_msg_iter)) { - status = LTTNG_LIVE_ITERATOR_STATUS_AGAIN; - } - } else { - status = LTTNG_LIVE_ITERATOR_STATUS_ERROR; - } + status = LTTNG_LIVE_ITERATOR_STATUS_ERROR; end: if (fp) { int closeret;