mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
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
This commit is contained in:
parent
597a1c4e82
commit
391d09cd6e
10 changed files with 18 additions and 12 deletions
|
|
@ -643,7 +643,7 @@ static void thread_func(void *userdata) {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -626,7 +626,7 @@ static void thread_func(void *userdata) {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -268,7 +268,7 @@ static void thread_func(void *userdata) {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,7 @@ static void thread_func(void *userdata) {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1031,7 +1031,7 @@ static void thread_func(void *userdata) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -185,7 +185,7 @@ static void thread_func(void *userdata) {
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
pollfd->events = u->sink->thread_info.state == PA_SINK_RUNNING ? POLLOUT : 0;
|
pollfd->events = u->sink->thread_info.state == PA_SINK_RUNNING ? POLLOUT : 0;
|
||||||
|
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ static void thread_func(void *userdata) {
|
||||||
/* Hmm, nothing to do. Let's sleep */
|
/* Hmm, nothing to do. Let's sleep */
|
||||||
pollfd->events = u->source->thread_info.state == PA_SOURCE_RUNNING ? POLLIN : 0;
|
pollfd->events = u->source->thread_info.state == PA_SOURCE_RUNNING ? POLLIN : 0;
|
||||||
|
|
||||||
if (pa_rtpoll_run(u->rtpoll) < 0) {
|
if (pa_rtpoll_run(u->rtpoll, 1) < 0) {
|
||||||
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
pa_log("poll() failed: %s", pa_cstrerror(errno));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -257,7 +257,7 @@ void pa_rtpoll_free(pa_rtpoll *p) {
|
||||||
pa_xfree(p);
|
pa_xfree(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pa_rtpoll_run(pa_rtpoll *p) {
|
int pa_rtpoll_run(pa_rtpoll *p, int wait) {
|
||||||
pa_rtpoll_item *i;
|
pa_rtpoll_item *i;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
int no_events = 0;
|
int no_events = 0;
|
||||||
|
|
@ -301,7 +301,10 @@ int pa_rtpoll_run(pa_rtpoll *p) {
|
||||||
rtpoll_rebuild(p);
|
rtpoll_rebuild(p);
|
||||||
|
|
||||||
/* Calculate timeout */
|
/* Calculate timeout */
|
||||||
if (p->timer_enabled) {
|
if (!wait) {
|
||||||
|
timeout.tv_sec = 0;
|
||||||
|
timeout.tv_nsec = 0;
|
||||||
|
} else if (p->timer_enabled) {
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
pa_rtclock_get(&now);
|
pa_rtclock_get(&now);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,10 @@ void pa_rtpoll_free(pa_rtpoll *p);
|
||||||
|
|
||||||
void pa_rtpoll_install(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_absolute(pa_rtpoll *p, const struct timespec *ts);
|
||||||
void pa_rtpoll_set_timer_periodic(pa_rtpoll *p, pa_usec_t usec);
|
void pa_rtpoll_set_timer_periodic(pa_rtpoll *p, pa_usec_t usec);
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ int main(int argc, char *argv[]) {
|
||||||
pa_rtpoll_install(p);
|
pa_rtpoll_install(p);
|
||||||
pa_rtpoll_set_timer_periodic(p, 10000000); /* 10 s */
|
pa_rtpoll_set_timer_periodic(p, 10000000); /* 10 s */
|
||||||
|
|
||||||
pa_rtpoll_run(p);
|
pa_rtpoll_run(p, 1);
|
||||||
|
|
||||||
pa_rtpoll_item_free(i);
|
pa_rtpoll_item_free(i);
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@ int main(int argc, char *argv[]) {
|
||||||
pollfd->fd = 0;
|
pollfd->fd = 0;
|
||||||
pollfd->events = POLLIN;
|
pollfd->events = POLLIN;
|
||||||
|
|
||||||
pa_rtpoll_run(p);
|
pa_rtpoll_run(p, 1);
|
||||||
|
|
||||||
pa_rtpoll_item_free(i);
|
pa_rtpoll_item_free(i);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue