diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-09-11 13:15:39 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-09-11 13:15:39 +0000 |
commit | 391d09cd6e8d47ad8255736be5cb512b04843ed1 (patch) | |
tree | d5f66e0e8476ed5d3f21791c80a4a8fadf7bdef6 /src/pulsecore | |
parent | 597a1c4e82f2bb84e983d0cbb9be7e79c5607c00 (diff) |
add 'wait' parameter to pa_rtpoll_run(), if zero pa_rtpoll_runn will only update the struct pollfd but not wait for an event
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1803 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore')
-rw-r--r-- | src/pulsecore/rtpoll.c | 7 | ||||
-rw-r--r-- | src/pulsecore/rtpoll.h | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/pulsecore/rtpoll.c b/src/pulsecore/rtpoll.c index e43ec610..be1c83c0 100644 --- a/src/pulsecore/rtpoll.c +++ b/src/pulsecore/rtpoll.c @@ -257,7 +257,7 @@ void pa_rtpoll_free(pa_rtpoll *p) { pa_xfree(p); } -int pa_rtpoll_run(pa_rtpoll *p) { +int pa_rtpoll_run(pa_rtpoll *p, int wait) { pa_rtpoll_item *i; int r = 0; int no_events = 0; @@ -301,7 +301,10 @@ int pa_rtpoll_run(pa_rtpoll *p) { rtpoll_rebuild(p); /* Calculate timeout */ - if (p->timer_enabled) { + if (!wait) { + timeout.tv_sec = 0; + timeout.tv_nsec = 0; + } else if (p->timer_enabled) { struct timespec now; pa_rtclock_get(&now); diff --git a/src/pulsecore/rtpoll.h b/src/pulsecore/rtpoll.h index 7fe5cb37..f393f918 100644 --- a/src/pulsecore/rtpoll.h +++ b/src/pulsecore/rtpoll.h @@ -58,7 +58,10 @@ void pa_rtpoll_free(pa_rtpoll *p); void pa_rtpoll_install(pa_rtpoll *p); -int pa_rtpoll_run(pa_rtpoll *f); +/* Sleep on the rtpoll until the time event, or any of the fd events + * is triggered. If "wait" is 0 we don't sleep but only update the + * struct pollfd. */ +int pa_rtpoll_run(pa_rtpoll *f, int wait); void pa_rtpoll_set_timer_absolute(pa_rtpoll *p, const struct timespec *ts); void pa_rtpoll_set_timer_periodic(pa_rtpoll *p, pa_usec_t usec); |