Fix: handle new streams in get_data_packet()
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 25 Feb 2014 15:48:13 +0000 (10:48 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 25 Feb 2014 16:22:17 +0000 (11:22 -0500)
- don't skip ask_new_streams() if new metadata _and_
  new streams are available.
- goto retry after getting new streams.
- Add missing "ret = 0" assignment at the end of the function. Takes
  care of "possible use of uninitialized variables" warnings in the
  caller given by gcc.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
formats/lttng-live/lttng-live-comm.c

index 76dc6bbb14bc2ea6a045cd2ddb8072365fb9416c..945df4317bdec9d0ca1aa324405f110d229d8143 100644 (file)
@@ -676,15 +676,19 @@ retry:
                        ret = append_metadata(ctx, stream);
                        if (ret)
                                goto error;
                        ret = append_metadata(ctx, stream);
                        if (ret)
                                goto error;
-                       goto retry;
                }
                if (rp.flags & LTTNG_VIEWER_FLAG_NEW_STREAM) {
                }
                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);
                }
                        ret = ask_new_streams(ctx);
                        if (ret < 0)
                                goto error;
                        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;
                goto end;
                fprintf(stderr, "[error] get_data_packet: error\n");
                ret = -1;
                goto end;
@@ -745,7 +749,7 @@ retry:
                goto error;
        }
        assert(ret_len == len);
                goto error;
        }
        assert(ret_len == len);
-
+       ret = 0;
 end:
 error:
        return ret;
 end:
 error:
        return ret;
This page took 0.026311 seconds and 4 git commands to generate.