consumerd: add health instrumentation into threads
[lttng-tools.git] / src / common / consumer-timer.c
index 68b5638ddc404e009ba7c5d835b7b2fec782ecc9..7ece0f6a54a37eb97084e8973cecc63c59b8b8e3 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "consumer-timer.h"
 #include "ust-consumer/ust-consumer.h"
+#include "../bin/lttng-consumerd/health-consumerd.h"
 
 static struct timer_signal_data timer_signal = {
        .tid = 0,
@@ -469,12 +470,20 @@ void *consumer_timer_thread(void *data)
        siginfo_t info;
        struct lttng_consumer_local_data *ctx = data;
 
+       health_register(health_consumerd, HEALTH_CONSUMERD_TYPE_METADATA_TIMER);
+
+       health_code_update();
+
        /* Only self thread will receive signal mask. */
        setmask(&mask);
        CMM_STORE_SHARED(timer_signal.tid, pthread_self());
 
        while (1) {
+               health_code_update();
+
+               health_poll_entry();
                signr = sigwaitinfo(&mask, &info);
+               health_poll_exit();
                if (signr == -1) {
                        if (errno != EINTR) {
                                PERROR("sigwaitinfo");
@@ -494,5 +503,9 @@ void *consumer_timer_thread(void *data)
                }
        }
 
+       /* Currently never reached */
+       health_unregister(health_consumerd);
+
+       /* Never return */
        return NULL;
 }
This page took 0.024804 seconds and 5 git commands to generate.