cpusleep plugin: calculating in integers
authorRinigus <rinigus.git@gmail.com>
Fri, 5 Aug 2016 12:16:18 +0000 (15:16 +0300)
committerRinigus <rinigus.git@gmail.com>
Fri, 5 Aug 2016 12:16:18 +0000 (15:16 +0300)
src/cpusleep.c

index 9a0e17e..4d3547a 100644 (file)
@@ -71,7 +71,9 @@ static int cpusleep_read(void)
 
        // to avoid false positives in counter overflow due to reboot,
        // derive is used. Sleep is calculated in milliseconds
-       derive_t sleep = (derive_t) ((b.tv_sec - m.tv_sec)*1e3 + (b.tv_nsec - m.tv_nsec)*1e-6);  
+       derive_t diffsec = b.tv_sec - m.tv_sec;
+       derive_t diffnsec = b.tv_nsec - m.tv_nsec;
+       derive_t sleep = diffsec * 1000 + diffnsec / 1000000;
 
        cpusleep_submit(sleep);