Fix: assign a trace handle to every live trace
[babeltrace.git] / formats / lttng-live / lttng-live-comm.c
index 1266a95dd549340864c4438b7da272a641caee02..0cf38e6e0437abc39cd12ca7a5ee4a7c2a8a7ea9 100644 (file)
@@ -633,10 +633,6 @@ int get_data_packet(struct lttng_live_ctx *ctx,
        case LTTNG_VIEWER_GET_PACKET_ERR:
                if (rp.flags & LTTNG_VIEWER_FLAG_NEW_METADATA) {
                        printf_verbose("get_data_packet: new metadata needed\n");
-                       ret = get_new_metadata(ctx, stream);
-                       if (ret < 0) {
-                               goto error;
-                       }
                        ret = 0;
                        goto end;
                }
@@ -855,10 +851,6 @@ int get_new_metadata(struct lttng_live_ctx *ctx,
                ret = get_one_metadata_packet(ctx, metadata_stream);
        } while (ret > 0);
 
-       fclose(metadata_stream->metadata_fp_write);
-       metadata_stream->metadata_fp_write = NULL;
-
-error:
        return ret;
 }
 
@@ -1187,6 +1179,8 @@ void add_traces(gpointer key, gpointer value, gpointer user_data)
        struct bt_mmap_stream *new_mmap_stream;
        struct bt_mmap_stream_list mmap_list;
        struct lttng_live_ctx *ctx = NULL;
+       struct bt_trace_descriptor *td;
+       struct bt_trace_handle *handle;
 
        /*
         * We don't know how many streams we will receive for a trace, so
@@ -1231,15 +1225,12 @@ void add_traces(gpointer key, gpointer value, gpointer user_data)
                fprintf(stderr, "[error] Error adding trace\n");
                goto end_free;
        }
-
+       handle = (struct bt_trace_handle *) g_hash_table_lookup(
+                       bt_ctx->trace_handles,
+                       (gpointer) (unsigned long) ret);
+       td = handle->td;
+       trace->handle = handle;
        if (bt_ctx->current_iterator) {
-               struct bt_trace_descriptor *td;
-               struct bt_trace_handle *handle;
-
-               handle = (struct bt_trace_handle *) g_hash_table_lookup(
-                               bt_ctx->trace_handles,
-                               (gpointer) (unsigned long) ret);
-               td = handle->td;
                bt_iter_add_trace(bt_ctx->current_iterator, td);
        }
 
This page took 0.023885 seconds and 4 git commands to generate.