From 049e5e626bedade0547cd9ee4b200bc91dc5ef44 Mon Sep 17 00:00:00 2001 From: Mikael Beckius Date: Tue, 12 May 2015 11:04:34 +0200 Subject: [PATCH] Fix: live timer calculation error There is an calculation error for live timer. Variable chan->switch_timer_interval is based on microsecond, and it is not right to assign chan->switch_timer_interval mod 1000000 to var tv_nsec which is based on nanosecond. Signed-off-by: Mikael Beckius Signed-off-by: Jianchuan Wang Signed-off-by: Mathieu Desnoyers --- libringbuffer/ring_buffer_frontend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libringbuffer/ring_buffer_frontend.c b/libringbuffer/ring_buffer_frontend.c index 77019e9c..6c3fa740 100644 --- a/libringbuffer/ring_buffer_frontend.c +++ b/libringbuffer/ring_buffer_frontend.c @@ -544,7 +544,7 @@ void lib_ring_buffer_channel_switch_timer_start(struct channel *chan) } its.it_value.tv_sec = chan->switch_timer_interval / 1000000; - its.it_value.tv_nsec = chan->switch_timer_interval % 1000000; + its.it_value.tv_nsec = (chan->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; @@ -598,7 +598,7 @@ void lib_ring_buffer_channel_read_timer_start(struct channel *chan) } its.it_value.tv_sec = chan->read_timer_interval / 1000000; - its.it_value.tv_nsec = chan->read_timer_interval % 1000000; + its.it_value.tv_nsec = (chan->read_timer_interval % 1000000) * 1000; its.it_interval.tv_sec = its.it_value.tv_sec; its.it_interval.tv_nsec = its.it_value.tv_nsec; -- 2.34.1