Cleanup lttng-live: add brackets in lttng_live_read()
[babeltrace.git] / formats / lttng-live / lttng-live-comm.c
index 568a4a1e806d64db8ad6191d4f0fcce25670ea21..3970ac22ee6ed43fa33dae4664061cc478811836 100644 (file)
@@ -589,10 +589,12 @@ int append_metadata(struct lttng_live_ctx *ctx,
        ret = ctf_append_trace_metadata(
                        viewer_stream->ctf_trace->handle->td,
                        metadata->ctf_trace->metadata_fp);
-       if (ret != 0) {
+       /* We accept empty metadata packets */
+       if (ret != 0 && ret != -ENOENT) {
                fprintf(stderr, "[error] Appending metadata\n");
                goto error;
        }
+       ret = 0;
 
 error:
        return ret;
@@ -674,14 +676,18 @@ retry:
                        ret = append_metadata(ctx, stream);
                        if (ret)
                                goto error;
-                       goto retry;
                }
                if (rp.flags & LTTNG_VIEWER_FLAG_NEW_STREAM) {
+                       printf_verbose("get_data_packet: new streams needed\n");
                        ret = ask_new_streams(ctx);
                        if (ret < 0)
                                goto error;
-                       g_hash_table_foreach(ctx->session->ctf_traces, add_traces,
-                                       ctx->bt_ctx);
+                       g_hash_table_foreach(ctx->session->ctf_traces,
+                                       add_traces, ctx->bt_ctx);
+               }
+               if (rp.flags & (LTTNG_VIEWER_FLAG_NEW_METADATA
+                               | LTTNG_VIEWER_FLAG_NEW_STREAM)) {
+                       goto retry;
                }
                fprintf(stderr, "[error] get_data_packet: error\n");
                ret = -1;
@@ -743,7 +749,7 @@ retry:
                goto error;
        }
        assert(ret_len == len);
-
+       ret = 0;
 end:
 error:
        return ret;
@@ -989,8 +995,8 @@ retry:
                        ret = ask_new_streams(ctx);
                        if (ret < 0)
                                goto error;
-                       g_hash_table_foreach(ctx->session->ctf_traces, add_traces,
-                                       ctx->bt_ctx);
+                       g_hash_table_foreach(ctx->session->ctf_traces,
+                                       add_traces, ctx->bt_ctx);
                }
                break;
        case LTTNG_VIEWER_INDEX_RETRY:
@@ -1461,8 +1467,9 @@ void lttng_live_read(struct lttng_live_ctx *ctx)
 
        sout = container_of(td_write, struct ctf_text_stream_pos,
                        trace_descriptor);
-       if (!sout->parent.event_cb)
+       if (!sout->parent.event_cb) {
                goto end_free;
+       }
 
        ret = lttng_live_create_viewer_session(ctx);
        if (ret < 0) {
@@ -1489,13 +1496,16 @@ void lttng_live_read(struct lttng_live_ctx *ctx)
                int flags;
 
                while (!ctx->session->stream_count) {
-                       if (ctx->session_ids->len == 0)
+                       if (ctx->session_ids->len == 0) {
                                goto end_free;
+                       }
                        ret = ask_new_streams(ctx);
-                       if (ret < 0)
+                       if (ret < 0) {
                                goto end_free;
-                       if (!ctx->session->stream_count)
+                       }
+                       if (!ctx->session->stream_count) {
                                (void) poll(NULL, 0, ACTIVE_POLL_DELAY);
+                       }
                }
 
                g_hash_table_foreach(ctx->session->ctf_traces, add_traces,
This page took 0.024818 seconds and 4 git commands to generate.