Build a list of triggers applying to a given session on creation
[lttng-tools.git] / src / bin / lttng-sessiond / rotation-thread.h
index 64e1ad98d8b1e4306447f44eb92e14940e5afb01..41da6e0444e209855fe14d7986834e9dd1979c99 100644 (file)
 #include <common/compat/poll.h>
 #include <common/hashtable/hashtable.h>
 #include <pthread.h>
+#include <semaphore.h>
 #include "session.h"
 
+/*
+ * The timer thread enqueues struct sessiond_rotation_timer objects in the list
+ * and wake up the rotation thread. When the rotation thread wakes up, it
+ * empties the queue.
+ */
+struct rotation_thread_timer_queue {
+       struct lttng_pipe *event_pipe;
+       struct cds_list_head list;
+       pthread_mutex_t lock;
+};
+
 struct rotation_thread_handle {
        /*
         * Read side of pipes used to communicate with the rotation thread.
@@ -38,13 +50,23 @@ struct rotation_thread_handle {
        int kernel_consumer;
        /* quit pipe */
        int thread_quit_pipe;
+
+       struct rotation_thread_timer_queue *rotation_timer_queue;
+
+       /* Access to the notification thread cmd_queue */
+       struct notification_thread_handle *notification_thread_handle;
+
+       sem_t *notification_thread_ready;
 };
 
 struct rotation_thread_handle *rotation_thread_handle_create(
                struct lttng_pipe *ust32_channel_rotate_pipe,
                struct lttng_pipe *ust64_channel_rotate_pipe,
                struct lttng_pipe *kernel_channel_rotate_pipe,
-               int thread_quit_pipe);
+               int thread_quit_pipe,
+               struct rotation_thread_timer_queue *rotation_timer_queue,
+               struct notification_thread_handle *notification_thread_handle,
+               sem_t *notification_thread_ready);
 
 void rotation_thread_handle_destroy(
                struct rotation_thread_handle *handle);
This page took 0.025369 seconds and 5 git commands to generate.