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 (;;) --
