X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-internal.h;h=e217995f56635c13efffb70f3f5b8eea9f7ecd18;hp=75d052b07122ce9af15ff29fb751267298bbaee5;hb=83b934ad2222dc44bb58fee7157e63b29c300a13;hpb=ea9a44f03f3f6e144b5f7f312eee2a5f7a849ecb diff --git a/src/bin/lttng-sessiond/notification-thread-internal.h b/src/bin/lttng-sessiond/notification-thread-internal.h index 75d052b07..e217995f5 100644 --- a/src/bin/lttng-sessiond/notification-thread-internal.h +++ b/src/bin/lttng-sessiond/notification-thread-internal.h @@ -33,7 +33,7 @@ struct session_info { uid_t uid; gid_t gid; /* - * Back-ref (weak) to all channels in this session. + * Hashtable containing back-refs (weak) to all channels in this session. * The hashtable's key is a hash of (struct channel_key) and * the value is of type (struct channel_info *). */ @@ -41,7 +41,20 @@ struct session_info { struct lttng_session_trigger_list *trigger_list; /* Node in the notification thread state's sessions_ht. */ struct cds_lfht_node sessions_ht_node; + /* + * Weak reference to the thread state's sessions_ht. Used for removal on + * destruction. + */ + struct cds_lfht *sessions_ht; uint64_t consumed_data_size; + struct { + /* Whether a rotation is ongoing for this session. */ + bool ongoing; + /* Identifier of the currently ongoing rotation. */ + uint64_t id; + } rotation; + /* call_rcu delayed reclaim. */ + struct rcu_head rcu_node; }; struct channel_info { @@ -57,6 +70,8 @@ struct channel_info { struct cds_lfht_node channels_ht_node; /* Node in the session_info's channels_ht. */ struct cds_lfht_node session_info_channels_ht_node; + /* call_rcu delayed reclaim. */ + struct rcu_head rcu_node; }; #endif /* NOTIFICATION_THREAD_INTERNAL_H */