Fix: lttng-live await metadata
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 24 Feb 2014 17:24:54 +0000 (12:24 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 25 Feb 2014 12:49:50 +0000 (07:49 -0500)
Expect at least _some_ metadata in get_new_metadata. Retry until we
receive some metadata.

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

index 785f5f37022609a702cddf3341e20b32611d0d1c..8e701b2100ebadf1c2136bc7323a1814c29b737b 100644 (file)
@@ -869,7 +869,7 @@ int get_new_metadata(struct lttng_live_ctx *ctx,
 {
        int ret = 0;
        struct lttng_live_viewer_stream *metadata_stream;
-       size_t size;
+       size_t size, len_read = 0;;
 
        metadata_stream = viewer_stream->ctf_trace->metadata_stream;
        if (!metadata_stream) {
@@ -890,7 +890,10 @@ int get_new_metadata(struct lttng_live_ctx *ctx,
                 * negative value on error.
                 */
                ret = get_one_metadata_packet(ctx, metadata_stream);
-       } while (ret > 0);
+               if (ret > 0) {
+                       len_read += ret;
+               }
+       } while (ret > 0 || !len_read);
 
        if (fclose(metadata_stream->metadata_fp_write))
                perror("fclose");
This page took 0.025089 seconds and 4 git commands to generate.