Rotate timer
[lttng-tools.git] / src / bin / lttng-sessiond / session.h
index 3b3380c3f4d8f5ec112baedab274969f59765cee..e00e51cc6dedab784759db6c764589236737667c 100644 (file)
@@ -19,6 +19,7 @@
 #define _LTT_SESSION_H
 
 #include <limits.h>
+#include <stdbool.h>
 #include <urcu/list.h>
 
 #include <common/hashtable/hashtable.h>
@@ -127,8 +128,12 @@ struct ltt_session {
         * rotate_pending_relay.
         */
        bool rotate_pending;
-       /* Current status of a rotation. */
-       enum lttng_rotation_status rotation_status;
+       /*
+        * True until the relay has finished the rotation of all the streams.
+        */
+       bool rotate_pending_relay;
+       /* Current state of a rotation. */
+       enum lttng_rotation_state rotation_state;
        /*
         * Number of channels waiting for a rotation.
         * When this number reaches 0, we can handle the rename of the chunk
@@ -162,6 +167,25 @@ struct ltt_session {
         * with the current timestamp.
         */
        time_t current_chunk_start_ts;
+       /*
+        * Timer to check periodically if a relay has completed the last
+        * rotation.
+        */
+       bool rotate_relay_pending_timer_enabled;
+       timer_t rotate_relay_pending_timer;
+       /* Timer to periodically rotate a session. */
+       bool rotate_timer_enabled;
+       timer_t rotate_timer;
+       uint64_t rotate_timer_period;
+       /* Value for size-based rotation, 0 if disabled. */
+       uint64_t rotate_size;
+       /*
+        * Keep a state if this session was rotated after the last stop command.
+        * We only allow one rotation after a stop. At destroy, we also need to
+        * know if a rotation occured since the last stop to rename the current
+        * chunk.
+        */
+       bool rotated_after_last_stop;
 };
 
 /* Prototypes */
This page took 0.024384 seconds and 4 git commands to generate.