#define LTTNG_CONSUMER_SIG_SWITCH SIGRTMIN + 10
#define LTTNG_CONSUMER_SIG_TEARDOWN SIGRTMIN + 11
+#define LTTNG_CONSUMER_SIG_LIVE SIGRTMIN + 12
#define CLOCKID CLOCK_MONOTONIC
/*
* Handle timer teardown race wrt memory free of private data by consumer
* signals are handled by a single thread, which permits a synchronization
- * point between handling of each signal.
+ * point between handling of each signal. Internal lock ensures mutual
+ * exclusion.
*/
struct timer_signal_data {
pthread_t tid; /* thread id managing signals */
int setup_done;
int qs_done;
+ pthread_mutex_t lock;
};
void consumer_timer_switch_start(struct lttng_consumer_channel *channel,
unsigned int switch_timer_interval);
void consumer_timer_switch_stop(struct lttng_consumer_channel *channel);
-void *consumer_timer_metadata_thread(void *data);
-void consumer_signal_init(void);
+void consumer_timer_live_start(struct lttng_consumer_channel *channel,
+ int live_timer_interval);
+void consumer_timer_live_stop(struct lttng_consumer_channel *channel);
+void *consumer_timer_thread(void *data);
+int consumer_signal_init(void);
+
+int consumer_flush_kernel_index(struct lttng_consumer_stream *stream);
+int consumer_flush_ust_index(struct lttng_consumer_stream *stream);
#endif /* CONSUMER_TIMER_H */