Commit graph

6 commits

Author SHA1 Message Date
Jonas Ådahl
80f4f0d512 event-loop: Use two-step destruction of event loop sources.
Instead of directly freeing an event source upon removal put it in a
queue later handled by the event loop; either after a dispatch or upon
event loop destruction.

This is necessary to avoid already queued up event sources to be freed
during some other dispatch callback, causing segmentation faults when
the event loop later tries to handle an event from the freed source.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-03-21 10:30:19 -04:00
Ander Conselvan de Oliveira
3c5d9694db event-loop: always do the post-dispatch check
The post-dispatch check on wl_event_loop_dispatch() was not being run
if epoll_wait returned 0 events, making the check unreliable.
2012-03-20 15:15:19 -04:00
Kristian Høgsberg
d6465c5b40 Fix WL_EVENT_WRITEABLE typo 2011-12-28 22:51:34 -05:00
Kristian Høgsberg
f86338d611 event-loop: Fix idle handler dispatch corner case
When the last idle handler queues another idle handler, we fail to
dispatch that last handler.  The wl_list_for_each_safe loop looks up
the next pointer before running the handler, and at that point it points
to the head of the list and the loop terminates.

Instead, just loop until the list is empty.
2011-10-29 14:27:33 -04:00
Kristian Høgsberg
efeb9e9778 event-loop: Quiet a few warnings
There's no good error recovery possible in these cases though.
2011-08-12 16:25:18 -04:00
Kristian Høgsberg
4c260db68c Rename source subdir from wayland to src 2011-08-12 16:25:14 -04:00
Renamed from wayland/event-loop.c (Browse further)