LTTNG_CONSUMER32_UST,
};
+enum consumer_endpoint_status {
+ CONSUMER_ENDPOINT_ACTIVE,
+ CONSUMER_ENDPOINT_INACTIVE,
+};
+
struct lttng_consumer_channel {
struct lttng_ht_node_ulong node;
int key;
uint64_t relayd_stream_id;
/* Next sequence number to use for trace packet */
uint64_t next_net_seq_num;
- /* Lock to use the stream FDs since they are used between threads. */
+ /*
+ * Lock to use the stream FDs since they are used between threads. Using
+ * this lock with network streaming, when using the control mutex of a
+ * consumer_relayd_sock_pair, make sure to acquire this lock BEFORE locking
+ * it and releasing it AFTER the control mutex unlock.
+ */
pthread_mutex_t lock;
/* Tracing session id */
uint64_t session_id;
+ /*
+ * Indicates if the stream end point is still active or not (network
+ * streaming or local file system). The thread "owning" the stream is
+ * handling this status and can be notified of a state change through the
+ * consumer data appropriate pipe.
+ */
+ enum consumer_endpoint_status endpoint_status;
};
/*