On Solaris, this header is necessary for finite(). Instead of including it
if the sun compiler is used, include it if it exists. This fixes a warning
if gcc is used on Solaris
Coverity was complaining about a possible integer overflow. This isn't
actually possible, but coverity has no way to know that because we were
in fact using a too big of a type. I fixed it to be the right type so
now everything should work.
CID 98384
@fix
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
Summary:
Applications are stuck when handler of pipe made nested loop.
In the nested loop, _ecore_pipe_read() tried to read new data based on previous information which is not cleared yet.
Spotted by gyuyoung.kim, sy302.park.
Related webkit bug is https://bugs.webkit.org/show_bug.cgi?id=129294
Reviewers: cedric, seoz, raster
CC: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D790
Call _ecore_pipe_unhandle() when you return from _ecore_pipe_read() or the fd will never be closed.
This fixed increasing numbers of fd handler issue when you call ecore_pipe_add/del repeatedly.
In that case, reusing ecore_pipe is recommended though.