+
+ struct urcu_ref ref;
+
+ pthread_mutex_t lock;
+
+ /* major/minor version used for this session. */
+ uint32_t major;
+ uint32_t minor;
+
+ bool viewer_attached;
+ /* Tell if the session connection has been closed on the streaming side. */
+ bool connection_closed;
+
+ /*
+ * Tell if the session is currently living in a exiting relayd and
+ * should be cleaned forcefully without waiting for pending data or
+ * pending ctrl data.
+ */
+ bool aborted;
+
+ /* Contains ctf_trace object of that session indexed by path name. */
+ struct lttng_ht *ctf_traces_ht;
+
+ /*
+ * This contains streams that are received on that connection.
+ * It's used to store them until we get the streams sent
+ * command. When this is received, we remove those streams from
+ * the list and publish them.
+ *
+ * Updates are protected by the recv_list_lock.
+ * Traversals are protected by RCU.
+ * recv_list_lock also protects stream_count.
+ */
+ struct cds_list_head recv_list; /* RCU list. */
+ uint32_t stream_count;
+ pthread_mutex_t recv_list_lock;
+