*/
struct ltt_session_list {
/*
- * This lock protects any read/write access to the list and count (which is
- * basically the list size). All public functions in session.c acquire this
- * lock and release it before returning. If none of those functions are
- * used, the lock MUST be acquired in order to iterate or/and do any
- * actions on that list.
+ * This lock protects any read/write access to the list and
+ * next_uuid. All public functions in session.c acquire this
+ * lock and release it before returning. If none of those
+ * functions are used, the lock MUST be acquired in order to
+ * iterate or/and do any actions on that list.
*/
pthread_mutex_t lock;
/*
- * Number of element in the list. The session list lock MUST be acquired if
- * this counter is used when iterating over the session list.
+ * Session unique ID generator. The session list lock MUST be
+ * upon update and read of this counter.
*/
- unsigned int count;
+ unsigned int next_uuid;
/* Linked list head */
struct cds_list_head head;
* copied into those sessions.
*/
struct consumer_output *consumer;
+
+ /* Indicates whether or not we have to spawn consumer(s) */
+ unsigned int start_consumer;
+
+ /* Did a start command occured before the kern/ust session creation? */
+ unsigned int started;
};
/* Prototypes */
struct ltt_session *session_find_by_name(char *name);
struct ltt_session_list *session_get_list(void);
+int session_access_ok(struct ltt_session *session, uid_t uid, gid_t gid);
+
#endif /* _LTT_SESSION_H */