ret = LTTCOMM_FATAL;
goto error;
}
+ uchan->enabled = 1;
switch (domain) {
case LTTNG_DOMAIN_UST:
DBG2("Channel %s being created in UST global domain", uchan->name);
- chan_ht = usess->domain_global.channels;
+
+ /* Adding the channel to the channel hash table. */
+ rcu_read_lock();
+ lttng_ht_add_unique_str(usess->domain_global.channels, &uchan->node);
+ rcu_read_unlock();
/* Enable channel for global domain */
ret = ust_app_create_channel_glb(usess, uchan);
goto error_free_chan;
}
- uchan->enabled = 1;
- lttng_ht_add_unique_str(chan_ht, &uchan->node);
DBG2("Channel %s created successfully", uchan->name);
free(defattr);
ret = ustctl_create_channel(app->key.sock, ua_sess->handle,
(struct lttng_ust_channel_attr *)&ua_chan->attr, &ua_chan->obj);
if (ret < 0) {
- DBG("Error creating channel %s for app (pid: %d, sock: %d) "
+ ERR("Creating channel %s for app (pid: %d, sock: %d) "
"and session handle %d with ret %d",
ua_chan->name, app->key.pid, app->key.sock,
ua_sess->handle, ret);
goto error;
}
shadow_copy_channel(ua_chan, uchan);
-
- lttng_ht_add_unique_str(ua_sess->channels, &ua_chan->node);
} else {
ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node);
}
goto error;
}
+ lttng_ht_add_unique_str(ua_sess->channels, &ua_chan->node);
+
return ua_chan;
error: