X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-events.c;h=a2fa8a1ca854933bdf505508002b3d113f609ce4;hp=51b95ee6da2e85b2501eda2b839cd39629ff760c;hb=1b5edb83504a933f6f5a1b07d574f8c6cf2e0e4e;hpb=ac1889bfdcb77622bbc818352d65634209d9829f;ds=sidebyside diff --git a/src/bin/lttng-sessiond/notification-thread-events.c b/src/bin/lttng-sessiond/notification-thread-events.c index 51b95ee6d..a2fa8a1ca 100644 --- a/src/bin/lttng-sessiond/notification-thread-events.c +++ b/src/bin/lttng-sessiond/notification-thread-events.c @@ -151,6 +151,13 @@ struct notification_client { struct cds_lfht_node client_socket_ht_node; struct cds_lfht_node client_id_ht_node; struct { + /* + * If a client's communication is inactive, it means a fatal + * error (either a protocol error or the socket API returned + * a fatal error). No further communication should be attempted; + * the client is queued for clean-up. + */ + bool active; struct { /* * During the reception of a message, the reception @@ -2836,6 +2843,7 @@ int client_dispatch_message(struct notification_client *client, goto end; } client->validated = true; + client->communication.active = true; break; } case LTTNG_NOTIFICATION_CHANNEL_MESSAGE_TYPE_SUBSCRIBE: