X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=ltt-events.c;h=17d87095c5a1b4bea0c15f9e8906fcb7bab47992;hb=64c796d8aec1efa5d6f0d5850d2a0095cb7842e3;hp=8a6f8e9930fa24acb27bb2fee4a7d2534fc8ccad;hpb=91e0dcaa69c92501ce4e045c76486f258fd5e0e5;p=lttng-modules.git diff --git a/ltt-events.c b/ltt-events.c index 8a6f8e99..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));