X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/17d34462eace417075efa2314999a77e41a3849b..eca082a93f2619cfa10733947a81fa779cb49573:/src/pulsecore/rtpoll.c diff --git a/src/pulsecore/rtpoll.c b/src/pulsecore/rtpoll.c index 83993f02..09e5e8a3 100644 --- a/src/pulsecore/rtpoll.c +++ b/src/pulsecore/rtpoll.c @@ -26,7 +26,6 @@ #include #include -#include #include #include @@ -40,8 +39,8 @@ #include #include #include -#include #include +#include #include "rtpoll.h" @@ -52,13 +51,13 @@ struct pa_rtpoll { unsigned n_pollfd_alloc, n_pollfd_used; struct timeval next_elapse; - pa_bool_t timer_enabled:1; + bool timer_enabled:1; - pa_bool_t scan_for_dead:1; - pa_bool_t running:1; - pa_bool_t rebuild_needed:1; - pa_bool_t quit:1; - pa_bool_t timer_elapsed:1; + bool scan_for_dead:1; + bool running:1; + bool rebuild_needed:1; + bool quit:1; + bool timer_elapsed:1; #ifdef DEBUG_TIMING pa_usec_t timestamp; @@ -70,7 +69,7 @@ struct pa_rtpoll { struct pa_rtpoll_item { pa_rtpoll *rtpoll; - pa_bool_t dead; + bool dead; pa_rtpoll_priority_t priority; @@ -111,7 +110,7 @@ static void rtpoll_rebuild(pa_rtpoll *p) { pa_assert(p); - p->rebuild_needed = FALSE; + p->rebuild_needed = false; if (p->n_pollfd_used > p->n_pollfd_alloc) { /* Hmm, we have to allocate some more space */ @@ -124,7 +123,7 @@ static void rtpoll_rebuild(pa_rtpoll *p) { for (i = p->items; i; i = i->next) { - if (i->n_pollfd > 0) { + if (i->n_pollfd > 0) { size_t l = i->n_pollfd * sizeof(struct pollfd); if (i->pollfd) @@ -162,7 +161,7 @@ static void rtpoll_item_destroy(pa_rtpoll_item *i) { if (pa_flist_push(PA_STATIC_FLIST_GET(items), i) < 0) pa_xfree(i); - p->rebuild_needed = TRUE; + p->rebuild_needed = true; } void pa_rtpoll_free(pa_rtpoll *p) { @@ -204,7 +203,7 @@ static void reset_all_revents(pa_rtpoll *p) { } } -int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { +int pa_rtpoll_run(pa_rtpoll *p, bool wait_op) { pa_rtpoll_item *i; int r = 0; struct timeval timeout; @@ -212,8 +211,12 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { pa_assert(p); pa_assert(!p->running); - p->running = TRUE; - p->timer_elapsed = FALSE; +#ifdef DEBUG_TIMING + pa_log("rtpoll_run"); +#endif + + p->running = true; + p->timer_elapsed = false; /* First, let's do some work */ for (i = p->items; i && i->priority < PA_RTPOLL_NEVER; i = i->next) { @@ -225,13 +228,19 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { if (!i->work_cb) continue; - if (p->quit) + if (p->quit) { +#ifdef DEBUG_TIMING + pa_log("rtpoll finish"); +#endif goto finish; + } if ((k = i->work_cb(i)) != 0) { if (k < 0) r = k; - +#ifdef DEBUG_TIMING + pa_log("rtpoll finish"); +#endif goto finish; } } @@ -263,7 +272,9 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { if (k < 0) r = k; - +#ifdef DEBUG_TIMING + pa_log("rtpoll finish"); +#endif goto finish; } } @@ -287,6 +298,10 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { pa_usec_t now = pa_rtclock_now(); p->awake = now - p->timestamp; p->timestamp = now; + if (!wait_op || p->quit || p->timer_enabled) + pa_log("poll timeout: %d ms ",(int) ((timeout.tv_sec*1000) + (timeout.tv_usec / 1000))); + else + pa_log("poll timeout is ZERO"); } #endif @@ -339,12 +354,12 @@ int pa_rtpoll_run(pa_rtpoll *p, pa_bool_t wait_op) { finish: - p->running = FALSE; + p->running = false; if (p->scan_for_dead) { pa_rtpoll_item *n; - p->scan_for_dead = FALSE; + p->scan_for_dead = false; for (i = p->items; i; i = n) { n = i->next; @@ -361,7 +376,7 @@ void pa_rtpoll_set_timer_absolute(pa_rtpoll *p, pa_usec_t usec) { pa_assert(p); pa_timeval_store(&p->next_elapse, usec); - p->timer_enabled = TRUE; + p->timer_enabled = true; } void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) { @@ -372,14 +387,14 @@ void pa_rtpoll_set_timer_relative(pa_rtpoll *p, pa_usec_t usec) { pa_rtclock_get(&p->next_elapse); pa_timeval_add(&p->next_elapse, usec); - p->timer_enabled = TRUE; + p->timer_enabled = true; } void pa_rtpoll_set_timer_disabled(pa_rtpoll *p) { pa_assert(p); memset(&p->next_elapse, 0, sizeof(p->next_elapse)); - p->timer_enabled = FALSE; + p->timer_enabled = false; } pa_rtpoll_item *pa_rtpoll_item_new(pa_rtpoll *p, pa_rtpoll_priority_t prio, unsigned n_fds) { @@ -391,7 +406,7 @@ pa_rtpoll_item *pa_rtpoll_item_new(pa_rtpoll *p, pa_rtpoll_priority_t prio, unsi i = pa_xnew(pa_rtpoll_item, 1); i->rtpoll = p; - i->dead = FALSE; + i->dead = false; i->n_pollfd = n_fds; i->pollfd = NULL; i->priority = prio; @@ -422,8 +437,8 @@ void pa_rtpoll_item_free(pa_rtpoll_item *i) { pa_assert(i); if (i->rtpoll->running) { - i->dead = TRUE; - i->rtpoll->scan_for_dead = TRUE; + i->dead = true; + i->rtpoll->scan_for_dead = true; return; } @@ -613,10 +628,10 @@ pa_rtpoll_item *pa_rtpoll_item_new_asyncmsgq_write(pa_rtpoll *p, pa_rtpoll_prior void pa_rtpoll_quit(pa_rtpoll *p) { pa_assert(p); - p->quit = TRUE; + p->quit = true; } -pa_bool_t pa_rtpoll_timer_elapsed(pa_rtpoll *p) { +bool pa_rtpoll_timer_elapsed(pa_rtpoll *p) { pa_assert(p); return p->timer_elapsed;