From f2fbceb333421afb98c7d63b8f417bb43442e80f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 30 Apr 2006 23:33:04 +0000 Subject: * make sure the wakeup fd is polled on wven when no other fd is registered for polling * initialize mainloop return value to -1 * some optimizations git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@822 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/polyp/mainloop.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/polyp/mainloop.c') diff --git a/src/polyp/mainloop.c b/src/polyp/mainloop.c index 42a411d3..98b3f3c6 100644 --- a/src/polyp/mainloop.c +++ b/src/polyp/mainloop.c @@ -301,10 +301,7 @@ static void mainloop_quit(pa_mainloop_api*a, int retval) { m = a->userdata; assert(a == &m->api); - m->quit = 1; - m->retval = retval; - - pa_mainloop_wakeup(m); + pa_mainloop_quit(m, retval); } static const pa_mainloop_api vtable = { @@ -355,7 +352,8 @@ pa_mainloop *pa_mainloop_new(void) { m->io_events_scan_dead = m->defer_events_scan_dead = m->time_events_scan_dead = 0; m->pollfds = NULL; - m->max_pollfds = m->n_pollfds = m->rebuild_pollfds = 0; + m->max_pollfds = m->n_pollfds = 0; + m->rebuild_pollfds = 1; m->quit = m->retval = 0; @@ -368,6 +366,8 @@ pa_mainloop *pa_mainloop_new(void) { m->poll_func = NULL; m->poll_func_userdata = NULL; + + m->retval = -1; return m; } @@ -419,7 +419,7 @@ static int defer_foreach(void *p, PA_GCC_UNUSED uint32_t idx, int *del, void*use void pa_mainloop_free(pa_mainloop* m) { int all = 1; - assert(m && (m->state != STATE_POLLING)); + assert(m); pa_idxset_foreach(m->io_events, io_foreach, &all); pa_idxset_foreach(m->time_events, time_foreach, &all); @@ -772,10 +772,12 @@ int pa_mainloop_run(pa_mainloop *m, int *retval) { return 0; } -void pa_mainloop_quit(pa_mainloop *m, int r) { +void pa_mainloop_quit(pa_mainloop *m, int retval) { assert(m); + + m->quit = 1; + m->retval = retval; pa_mainloop_wakeup(m); - m->quit = r; } pa_mainloop_api* pa_mainloop_get_api(pa_mainloop*m) { -- cgit