raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9eebe065c262e0763649bb9f2dc1b0b9e2d434fe

commit 9eebe065c262e0763649bb9f2dc1b0b9e2d434fe
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Tue Sep 12 11:02:44 2017 +0900

    e powerszve - fix sleep timeout for select to be correct
    
    bad inverse fmod and using int not double first before converting to
    microseconds...
---
 src/bin/e_powersave.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_powersave.c b/src/bin/e_powersave.c
index 9d4349eeb..55021b38d 100644
--- a/src/bin/e_powersave.c
+++ b/src/bin/e_powersave.c
@@ -164,6 +164,7 @@ e_powersave_sleeper_free(E_Powersave_Sleeper *sleeper)
 E_API void
 e_powersave_sleeper_sleep(E_Powersave_Sleeper *sleeper, int poll_interval)
 {
+   double timf;
    unsigned int tim;
    fd_set rfds, wfds, exfds;
    struct timeval tv;
@@ -171,14 +172,14 @@ e_powersave_sleeper_sleep(E_Powersave_Sleeper *sleeper, 
int poll_interval)
    char buf[1] = { 1 };
 
    if (!sleeper) return;
-   if (e_powersave_mode_get() == E_POWERSAVE_MODE_FREEZE) tim = 3600;
-   else tim = (double)poll_interval / 8.0;
+   if (e_powersave_mode_get() == E_POWERSAVE_MODE_FREEZE) timf = 3600;
+   else timf = (double)poll_interval / 8.0;
    FD_ZERO(&rfds);
    FD_ZERO(&wfds);
    FD_ZERO(&exfds);
    FD_SET(sleeper->fd, &rfds);
 
-   tim = (fmod(ecore_time_get(), tim) * 1000000.0);
+   tim = ((timf - fmod(ecore_time_get(), timf)) * 1000000.0);
    tv.tv_sec = tim / 1000000;
    tv.tv_usec = tim % 1000000;
    for (;;)

-- 


Reply via email to