event-loop: Use two-step destruction of event loop sources.
authorJonas Ådahl <jadahl@gmail.com>
Wed, 21 Mar 2012 09:31:24 +0000 (10:31 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 21 Mar 2012 14:30:19 +0000 (10:30 -0400)
commit80f4f0d5127ebc8d5e35969a29691cf61a79997d
treea976eacf1e4b239fb9b89020a340e8fdeec865ae
parentf48bd0714a9b77935fab679a7f03bb26b309e82b
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>
src/event-loop.c