path: root/src/tests/thread-mainloop-test.c
diff options
authorMarc-André Lureau <>2009-04-05 02:13:43 +0300
committerMarc-André Lureau <>2009-06-20 17:29:31 +0300
commit0955e3d45b6e992308e2d51fcbf28a9f9376f788 (patch)
tree4fc673713b46d0fdd33c5529d1a06354db9d33ba /src/tests/thread-mainloop-test.c
parent125c52889626b2ac408ecbcc8ea85575f5808e07 (diff)
Base mainloop on pa_rtclock_now()
Move the mainloop to monotonic based time events. Introduces 4 helper functions: pa_{context,core}_rttime_{new,restart}(), that fill correctly a timeval with the rtclock flag set if the mainloop supports it. Both mainloop-test and mainloop-test-glib works with rt and timeval based time events. PulseAudio and clients should be fully functional. This patch has received several iterations, and this one as been largely untested. Signed-off-by: Marc-André Lureau <>
Diffstat (limited to 'src/tests/thread-mainloop-test.c')
1 files changed, 3 insertions, 4 deletions
diff --git a/src/tests/thread-mainloop-test.c b/src/tests/thread-mainloop-test.c
index ad89414f..e3160f30 100644
--- a/src/tests/thread-mainloop-test.c
+++ b/src/tests/thread-mainloop-test.c
@@ -25,6 +25,7 @@
#include <unistd.h>
#include <stdio.h>
+#include <pulse/rtclock.h>
#include <pulse/timeval.h>
#include <pulse/util.h>
#include <pulse/thread-mainloop.h>
@@ -32,7 +33,7 @@
#include <pulsecore/macro.h>
-static void tcb(pa_mainloop_api*a, pa_time_event *e, const struct timeval *tv, void *userdata) {
+static void tcb(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata) {
fprintf(stderr, "TIME EVENT START\n");
pa_threaded_mainloop_signal(userdata, 1);
@@ -53,9 +54,7 @@ int main(int argc, char *argv[]) {
- pa_gettimeofday(&tv);
- tv.tv_sec += 5;
- a->time_new(a, &tv, tcb, m);
+ a->time_new(a, pa_timeval_rtstore(&tv, pa_rtclock_now() + 5 * PA_USEC_PER_SEC, TRUE), tcb, m);
fprintf(stderr, "waiting 5s (signal)\n");