X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fchannel.cpp;h=4e5401295ed43f9d36d87b2e29a78b4f2ca52b72;hb=dc88217e78259cb6b35fbaf6b85ad5aed6a37023;hp=fc2da6ab8ba5e94939c181c223d239ee6c75a6cc;hpb=66cefebdc240cbae0bc79594305f509b0779fa98;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/channel.cpp b/src/bin/lttng-sessiond/channel.cpp index fc2da6ab8..4e5401295 100644 --- a/src/bin/lttng-sessiond/channel.cpp +++ b/src/bin/lttng-sessiond/channel.cpp @@ -325,6 +325,7 @@ enum lttng_error_code channel_ust_create(struct ltt_ust_session *usess, struct lttng_channel *defattr = nullptr; enum lttng_domain_type domain = LTTNG_DOMAIN_UST; bool chan_published = false; + lttng::urcu::read_lock_guard read_lock; LTTNG_ASSERT(usess); @@ -426,11 +427,12 @@ enum lttng_error_code channel_ust_create(struct ltt_ust_session *usess, } uchan->enabled = true; - if (trace_ust_is_max_id(usess->used_channel_id)) { + if (trace_ust_is_max_id(usess->used_event_container_id)) { ret_code = LTTNG_ERR_UST_CHAN_FAIL; goto error; } - uchan->id = trace_ust_get_next_chan_id(usess); + + uchan->id = trace_ust_get_next_event_container_id(usess); DBG2("Channel %s is being created for UST with buffer %d and id %" PRIu64, uchan->name, @@ -448,7 +450,6 @@ enum lttng_error_code channel_ust_create(struct ltt_ust_session *usess, } /* Adding the channel to the channel hash table. */ - rcu_read_lock(); if (strncmp(uchan->name, DEFAULT_METADATA_NAME, sizeof(uchan->name)) != 0) { lttng_ht_add_unique_str(usess->domain_global.channels, &uchan->node); chan_published = true; @@ -460,7 +461,6 @@ enum lttng_error_code channel_ust_create(struct ltt_ust_session *usess, */ memcpy(&usess->metadata_attr, &uchan->attr, sizeof(usess->metadata_attr)); } - rcu_read_unlock(); DBG2("Channel %s created successfully", uchan->name); if (domain != LTTNG_DOMAIN_UST) {