Fix: illegal memory access in relayd_create_session_2_4
[lttng-tools.git] / src / common / consumer-timer.c
index 2687eaffd7d556bd00686737a8190d883621979e..b35826cbba8ce82af8d47932832831819cbc6722 100644 (file)
@@ -438,7 +438,7 @@ void consumer_timer_switch_start(struct lttng_consumer_channel *channel,
        channel->switch_timer_enabled = 1;
 
        its.it_value.tv_sec = switch_timer_interval / 1000000;
-       its.it_value.tv_nsec = switch_timer_interval % 1000000;
+       its.it_value.tv_nsec = (switch_timer_interval % 1000000) * 1000;
        its.it_interval.tv_sec = its.it_value.tv_sec;
        its.it_interval.tv_nsec = its.it_value.tv_nsec;
 
@@ -495,7 +495,7 @@ void consumer_timer_live_start(struct lttng_consumer_channel *channel,
        channel->live_timer_enabled = 1;
 
        its.it_value.tv_sec = live_timer_interval / 1000000;
-       its.it_value.tv_nsec = live_timer_interval % 1000000;
+       its.it_value.tv_nsec = (live_timer_interval % 1000000) * 1000;
        its.it_interval.tv_sec = its.it_value.tv_sec;
        its.it_interval.tv_nsec = its.it_value.tv_nsec;
 
@@ -554,6 +554,8 @@ void *consumer_timer_thread(void *data)
        siginfo_t info;
        struct lttng_consumer_local_data *ctx = data;
 
+       rcu_register_thread();
+
        health_register(health_consumerd, HEALTH_CONSUMERD_TYPE_METADATA_TIMER);
 
        if (testpoint(consumerd_thread_metadata_timer)) {
@@ -596,6 +598,8 @@ error_testpoint:
        health_error();
        health_unregister(health_consumerd);
 
+       rcu_unregister_thread();
+
        /* Never return */
        return NULL;
 }
This page took 0.024105 seconds and 4 git commands to generate.