X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmanage-consumer.c;h=c87a43f6e1315cab8289c3e52bff0555b68b90e1;hb=a5a309207b81778262744a9de568f6d7c54996e2;hp=68c7d649b6d4ffff9fc2b59a40e2deda55385201;hpb=21fa020ee12d44632c5efde063869d542897bdd1;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/manage-consumer.c b/src/bin/lttng-sessiond/manage-consumer.c index 68c7d649b..c87a43f6e 100644 --- a/src/bin/lttng-sessiond/manage-consumer.c +++ b/src/bin/lttng-sessiond/manage-consumer.c @@ -134,11 +134,6 @@ void *thread_consumer_management(void *data) health_code_update(); - if (!revents) { - /* No activity for this FD (poll implementation). */ - continue; - } - /* Thread quit pipe has been closed. Killing thread. */ if (pollfd == quit_pipe_read_fd) { err = 0; @@ -247,8 +242,8 @@ void *thread_consumer_management(void *data) health_code_update(); /* - * Transfer the write-end of the channel monitoring and rotate pipe - * to the consumer by issuing a SET_CHANNEL_MONITOR_PIPE command. + * Transfer the write-end of the channel monitoring pipe to the consumer + * by issuing a SET_CHANNEL_MONITOR_PIPE command. */ cmd_socket_wrapper = consumer_allocate_socket(&consumer_data->cmd_sock); if (!cmd_socket_wrapper) { @@ -257,6 +252,16 @@ void *thread_consumer_management(void *data) } cmd_socket_wrapper->lock = &consumer_data->lock; + pthread_mutex_lock(cmd_socket_wrapper->lock); + ret = consumer_init(cmd_socket_wrapper, sessiond_uuid); + if (ret) { + ERR("Failed to send sessiond uuid to consumer daemon"); + mark_thread_intialization_as_failed(notifiers); + pthread_mutex_unlock(cmd_socket_wrapper->lock); + goto error; + } + pthread_mutex_unlock(cmd_socket_wrapper->lock); + ret = consumer_send_channel_monitor_pipe(cmd_socket_wrapper, consumer_data->channel_monitor_pipe); if (ret) { @@ -298,11 +303,6 @@ void *thread_consumer_management(void *data) health_code_update(); - if (!revents) { - /* No activity for this FD (poll implementation). */ - continue; - } - /* * Thread quit pipe has been triggered, flag that we should stop * but continue the current loop to handle potential data from @@ -471,7 +471,7 @@ bool launch_consumer_management_thread(struct consumer_data *consumer_data) wait_until_thread_is_ready(notifiers); lttng_thread_put(thread); if (notifiers->initialization_result) { - goto error; + return false; } return true; error: