+void *live_consume()
+{
+ struct bt_context *bt_ctx = NULL;
+ int ret;
+
+ while (1) {
+// dump_snapshot();
+
+ if (!metadata_ready) {
+ fprintf(stderr, "BLOCKING BEFORE METADATA\n");
+ sem_wait(&metadata_available);
+ fprintf(stderr,"OPENING TRACE\n");
+ if (access("/tmp/livesession/kernel/metadata", F_OK) != 0) {
+ fprintf(stderr,"NO METADATA FILE, SKIPPING\n");
+ return;
+ }
+ metadata_ready = 1;
+ metadata_fp = fopen("/tmp/livesession/kernel/metadata", "r");
+ }
+
+ if (!trace_opened) {
+ bt_ctx = bt_context_create();
+ ret = bt_context_add_trace(bt_ctx, NULL, "ctf",
+ lttngtop_ctf_packet_seek, &mmap_list, metadata_fp);
+ trace_opened = 1;
+ }
+ iter_trace(bt_ctx);
+ sleep(1);
+ }
+}