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 = {
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;
m->poll_func = NULL;
m->poll_func_userdata = NULL;
+
+ m->retval = -1;
return m;
}
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);
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) {