X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-events.c;h=17d87095c5a1b4bea0c15f9e8906fcb7bab47992;hb=41affe319e5f4c049ba0ae427f485d8cdfb65488;hp=28d17fc772af2a89566468a992a73e1b494d5765;hpb=30bdb6e41d33f7ce7b4eb51f363423c1dc9fd88e;p=lttng-modules.git diff --git a/ltt-events.c b/ltt-events.c index 28d17fc7..17d87095 100644 --- a/ltt-events.c +++ b/ltt-events.c @@ -169,12 +169,17 @@ struct ltt_channel *ltt_channel_create(struct ltt_session *session, goto nomem; chan->session = session; init_waitqueue_head(&chan->notify_wait); + chan->id = session->free_chan_id++; + /* + * Note: the channel creation op already writes into the packet + * headers. Therefore the "chan" information used as input + * should be already accessible. + */ chan->chan = transport->ops.channel_create("[lttng]", chan, buf_addr, subbuf_size, num_subbuf, switch_timer_interval, read_timer_interval); if (!chan->chan) goto create_error; - chan->id = session->free_chan_id++; chan->ops = &transport->ops; list_add(&chan->list, &session->chan); mutex_unlock(&sessions_mutex); @@ -362,7 +367,7 @@ int lttng_metadata_printf(struct ltt_session *session, */ waitret = wait_event_interruptible_timeout(*chan->ops->get_reader_wait_queue(chan), ({ - ret = chan->ops->event_reserve(&ctx); + ret = chan->ops->event_reserve(&ctx, 0); ret != -ENOBUFS || !ret; }), msecs_to_jiffies(LTTNG_METADATA_TIMEOUT_MSEC)); @@ -522,7 +527,7 @@ int _ltt_event_metadata_statedump(struct ltt_session *session, " name = %s;\n" " id = %u;\n" " stream_id = %u;\n" - " event.fields := struct {\n", + " fields := struct {\n", event->desc->name, event->id, event->chan->id); @@ -715,7 +720,7 @@ skip_session: } list_for_each_entry(event, &session->events, list) { - ret = _ltt_event_metadata_statedump(session, chan, event); + ret = _ltt_event_metadata_statedump(session, event->chan, event); if (ret) goto end; }