diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-05-05 19:28:14 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-05-08 14:13:17 +0900 |
commit | 38faeacee1a1aa10eabebb52edfaf91e2a2c158b (patch) | |
tree | 8a727582279a6baf4ff84b3210a4063d8a0b2525 | |
parent | 7485c41cf45903c2653058180a500e69948440aa (diff) | |
download | efl-38faeacee1a1aa10eabebb52edfaf91e2a2c158b.tar.gz |
ecore - ecore_pipe_wait timeout broken as it never adjusts while waiting
if select gets interrupted it just waits again from the start because
it uses loop time not "now" time. this is wrong and makes timeout
waits possibly hang if enough things interrupt select without reading
data. this fixes that.
@fix
-rw-r--r-- | src/lib/ecore/ecore_pipe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c index 23b80d15bd..823f07dc23 100644 --- a/src/lib/ecore/ecore_pipe.c +++ b/src/lib/ecore/ecore_pipe.c @@ -438,7 +438,7 @@ _ecore_pipe_wait(Ecore_Pipe *p, FD_SET(p->fd_read, &rset); if (wait >= 0.0) - end = ecore_loop_time_get() + wait; + end = ecore_time_get() + wait; timeout = wait; while (message_count > 0 && (timeout > 0.0 || wait <= 0.0)) @@ -493,7 +493,7 @@ _ecore_pipe_wait(Ecore_Pipe *p, } if (wait >= 0.0) - timeout = end - ecore_loop_time_get(); + timeout = end - ecore_time_get(); } return total; |