-static void asyncmsgq_cb(pa_mainloop_api*api, pa_io_event* e, int fd, pa_io_event_flags_t events, void *userdata) {
- pa_core *c = userdata;
-
- pa_assert(pa_asyncmsgq_get_fd(c->asyncmsgq) == fd);
- pa_assert(events == PA_IO_EVENT_INPUT);
-
- pa_asyncmsgq_after_poll(c->asyncmsgq);
-
- for (;;) {
- pa_msgobject *object;
- int code;
- void *data;
- pa_memchunk chunk;
-
- /* Check whether there is a message for us to process */
- while (pa_asyncmsgq_get(c->asyncmsgq, &object, &code, &data, &chunk, 0) == 0) {
- pa_asyncmsgq_dispatch(object, code, data, &chunk);
- pa_asyncmsgq_done(c->asyncmsgq, 0);
- }
-
- if (pa_asyncmsgq_before_poll(c->asyncmsgq) == 0)
- break;
- }
-}
-