If there are no other main loop activity than a idlers and one idler
adds a timer, the new (and unique) timer would be ignored since it's
flagged as "just_added" and thus next iteration will not consider it,
possible entering an infinite wait as it could be the only thing to do
in main loop.
Antognolli found this nasty bug while handling timeout-and-die in
Ethumb, where the "disconnect" event is dispatched by EDBus from idler
and it was adding a timer to shutdown the daemon after a while without
clients.
By: Rafael Antognolli <antognolli@profusion.mobi>
SVN revision: 40923
The old way we could run endless with the following case:
int my_buggy_idler(void *data) {
ecore_idler_add(my_buggy_idler, NULL);
return 0;
}
since it would append to that list, then the list would never end.
Now we just dispatch up to the last know idler, then go back to
regular processing, if nothing happens we'll be back to dispatch
again.
I tested it here and works fine, but might show issues with ecore
enterers/exiters of some applications that rely on the old (broken)
behavior.
SVN revision: 40847
hence we must use closesocket() to close a socket instead of
close(). In addition, we should improve the closing of the
socket (see http://tangentsoft.net/wskfaq/newbie.html#howclose)
* use PIPE_FD_INVALID for invalid fd / socket
* use PIPE_FD_ERROR for invalid result when sending / receiving
data on fd / sockets
next step is to manage correctly errno on Windows with WSAGetLastError()
(see http://tangentsoft.net/wskfaq/articles/bsd-compatibility.html)
SVN revision: 40846
* fix the way AC_INIT macros are parsed to consider [] as well.
* set both LDFLAGS and CFLAGS on the libs I use and I know support -fvisibility=hidden.
SVN revision: 40838
starting to implement xrandr 1.3 support, now we support all events
and their fields.
This commit also fix way that extensions register their ids and
base. The way it was, ids was being added to the last event id, that
was wrong! Fortunately, those that were wrong had just one event and
always added "0", making no harm.
SVN revision: 40492
ecore_events are asynchronous and can be dispatched after the server
is deleted (ecore_con_server_del()). In this case, server will flag
"delete_me" and avoid doing double-free. When the event is dispatched
and the server is deleted, we still need to free resources and so we
need to call _ecore_con_server_free(). But we cannot do that by means
of ecore_con_server_del() since it will check "delete_me" flag and
will return.
This patch calls _ecore_con_server_free() directly when events are
dispatched and server is deleted. It fixes problems with
forecasts/weather modules exhausting file descriptors, a long standing
issue that bring problems with pam/desklock authentication.
Thanks to manio to point out #305 and testing.
SVN revision: 40490
This was affecting ecore_con users, specially modules that keep
polling the network, like forecasts or weather.
patch by manio, see bug #305.
SVN revision: 40488