main: Add Windows Service support

I've added PIPE_EVENT_SHUTDOWN because calling g_main_loop_quit() do not work when called from another thread.
Main thread was sleeping in g_poll() so I needed some way to wake it up.

By some strange reason call close(event_pipe[0]) in event_pipe_deinit() hangs.
In current implementation that code never reached so that was not a problem :-)
I've added a conditional to leave event_pipe[0] open on Win32.
This commit is contained in:
Denis Krjuchkov
2010-09-20 18:28:08 -07:00
committed by Max Kellermann
parent 9fa3d7c4fa
commit e8ebb1af91
6 changed files with 229 additions and 1 deletions
+3
View File
@@ -116,7 +116,10 @@ void event_pipe_deinit(void)
g_source_remove(event_pipe_source_id);
g_io_channel_unref(event_channel);
#ifndef WIN32
/* By some strange reason this call hangs on Win32 */
close(event_pipe[0]);
#endif
close(event_pipe[1]);
}