event_pipe: remove the GLib source from the main context
Free memory before exiting.
This commit is contained in:
parent
ca5432a79b
commit
e3c6ad515d
@ -35,6 +35,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int event_pipe[2];
|
static int event_pipe[2];
|
||||||
|
static guint event_pipe_source_id;
|
||||||
static GMutex *event_pipe_mutex;
|
static GMutex *event_pipe_mutex;
|
||||||
static bool pipe_events[PIPE_EVENT_MAX];
|
static bool pipe_events[PIPE_EVENT_MAX];
|
||||||
static event_pipe_callback_t event_pipe_callbacks[PIPE_EVENT_MAX];
|
static event_pipe_callback_t event_pipe_callbacks[PIPE_EVENT_MAX];
|
||||||
@ -92,7 +93,8 @@ void event_pipe_init(void)
|
|||||||
g_error("Couldn't set non-blocking I/O: %s", strerror(errno));
|
g_error("Couldn't set non-blocking I/O: %s", strerror(errno));
|
||||||
|
|
||||||
channel = g_io_channel_unix_new(event_pipe[0]);
|
channel = g_io_channel_unix_new(event_pipe[0]);
|
||||||
g_io_add_watch(channel, G_IO_IN, main_notify_event, NULL);
|
event_pipe_source_id = g_io_add_watch(channel, G_IO_IN,
|
||||||
|
main_notify_event, NULL);
|
||||||
g_io_channel_unref(channel);
|
g_io_channel_unref(channel);
|
||||||
|
|
||||||
event_pipe_mutex = g_mutex_new();
|
event_pipe_mutex = g_mutex_new();
|
||||||
@ -102,6 +104,8 @@ void event_pipe_deinit(void)
|
|||||||
{
|
{
|
||||||
g_mutex_free(event_pipe_mutex);
|
g_mutex_free(event_pipe_mutex);
|
||||||
|
|
||||||
|
g_source_remove(event_pipe_source_id);
|
||||||
|
|
||||||
close(event_pipe[0]);
|
close(event_pipe[0]);
|
||||||
close(event_pipe[1]);
|
close(event_pipe[1]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user