* Number of session rotation for this session.
*/
uint64_t rotate_count;
- unsigned int rotate_pending:1;
+ bool rotate_pending;
+ bool rotate_pending_relay;
+ bool rotate_pending_relay_check_in_progress;
+ enum lttng_rotate_status rotate_status;
/*
* Number of channels waiting for a rotate.
* When this number reaches 0, we can handle the rename of the chunk
* folder and inform the client that the rotate is finished.
- *
- * TODO: replace rotate_pending checks by that.
*/
unsigned int nr_chan_rotate_pending;
struct ltt_session_chunk rotation_chunk;
time_t current_chunk_start_ts;
time_t session_last_stop_ts;
time_t last_begin_rotation_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;
+ uint64_t rotate_size;
};
/* Prototypes */