static struct ltt_session_list ltt_session_list = {
.head = CDS_LIST_HEAD_INIT(ltt_session_list.head),
.lock = PTHREAD_MUTEX_INITIALIZER,
- .count = 0,
+ .next_uuid = 0,
};
/*
static unsigned int add_session_list(struct ltt_session *ls)
{
cds_list_add(&ls->list, <t_session_list.head);
- return ++ltt_session_list.count;
+ return ltt_session_list.next_uuid++;
}
/*
* Delete a ltt_session structure to the global list.
*
* The caller MUST acquire the session list lock before.
- * The session list count CANNOT be decremented, as it is used as unique
- * identifier for the session in UST app hash table lookups.
*/
static void del_session_list(struct ltt_session *ls)
{
*/
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;