timer thread in progress
[deliverable/lttng-tools.git] / src / bin / lttng-sessiond / session.h
index ebcf89df26219cd1c093c87ce0896e4a5b3efbcb..5edd962688df79ce3188d48a8a6ee4b8444e02e6 100644 (file)
@@ -66,8 +66,6 @@ struct ltt_session_chunk {
         * session rotation.
         */
        char active_tracing_path[PATH_MAX];
-       time_t rotate_start_time;
-       time_t rotate_end_time;
 };
 
 /*
@@ -137,23 +135,38 @@ struct ltt_session {
         * Number of session rotation for this session.
         */
        uint64_t rotate_count;
-       unsigned int rotate_pending:1;
+       bool rotate_pending;
+       bool rotate_pending_relay;
+       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;
        /*
-        * Store the timestamp when the session started for an eventual
-        * session rotation call.
+        * The timestamp of the beginning of the previous chunk. For the
+        * first chunk, this is the "lttng start" timestamp. For the
+        * subsequent ones, this copies the current_chunk_start_ts value when
+        * a new rotation starts. This value is used to set the name of a
+        * complete chunk directory, ex: "last_chunk_start_ts-now()".
         */
-       time_t session_start_ts;
+       time_t last_chunk_start_ts;
+       /*
+        * This is the timestamp when a new chunk starts. When a new rotation
+        * starts, we copy this value to last_chunk_start_ts and override it
+        * with the current timestamp.
+        */
+       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.
+        */
+       int rotate_relay_pending_timer_enabled;
+       timer_t rotate_relay_pending_timer;
 };
 
 /* Prototypes */
This page took 0.026001 seconds and 5 git commands to generate.