X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Frotation-thread.h;h=41da6e0444e209855fe14d7986834e9dd1979c99;hp=64e1ad98d8b1e4306447f44eb92e14940e5afb01;hb=d2678a0d274cb95b653a3f119979c98ecd35acc6;hpb=db66e57489e5014289dc1d831e1eac90ac4fc0da diff --git a/src/bin/lttng-sessiond/rotation-thread.h b/src/bin/lttng-sessiond/rotation-thread.h index 64e1ad98d..41da6e044 100644 --- a/src/bin/lttng-sessiond/rotation-thread.h +++ b/src/bin/lttng-sessiond/rotation-thread.h @@ -26,8 +26,20 @@ #include #include #include +#include #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);