Sessiond timer thread
[lttng-tools.git] / src / bin / lttng-sessiond / rotation-thread.h
index 64e1ad98d8b1e4306447f44eb92e14940e5afb01..c7bca0c4b7937fc6e2d4dc114255d32b3af4fc39 100644 (file)
 #include <pthread.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 +49,15 @@ struct rotation_thread_handle {
        int kernel_consumer;
        /* quit pipe */
        int thread_quit_pipe;
+       struct rotation_thread_timer_queue *rotation_timer_queue;
 };
 
 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);
 
 void rotation_thread_handle_destroy(
                struct rotation_thread_handle *handle);
This page took 0.023298 seconds and 4 git commands to generate.