]> code.delx.au - pulseaudio/commitdiff
win32: Make once-test work
authorMaarten Bosmans <mkbosmans@gmail.com>
Thu, 23 Jun 2011 20:21:02 +0000 (22:21 +0200)
committerColin Guthrie <colin@mageia.org>
Thu, 23 Jun 2011 23:32:22 +0000 (00:32 +0100)
The barrier is not used when pthread is not available.

src/Makefile.am
src/pulsecore/thread-win32.c
src/tests/once-test.c
src/tests/thread-test.c

index 3858cb30137d018b6959d848753d1c7f23a22be8..a0e7ce38e8d309854ac3b1ebc04dbde294d36b02 100644 (file)
@@ -271,6 +271,7 @@ TESTS = \
 
 TESTS_norun = \
                mcalign-test \
+               once-test \
                pacat-simple \
                parec-simple \
                extended-test \
@@ -309,13 +310,6 @@ TESTS_norun += \
                alsa-time-test
 endif
 
-if !OS_IS_DARWIN
-if !OS_IS_WIN32
-TESTS_BINARIES += \
-               once-test
-endif
-endif
-
 if BUILD_TESTS_DEFAULT
 noinst_PROGRAMS = $(TESTS) $(TESTS_norun)
 else
index e0839af88ab82f2489f2d161f09abc75c473b6dc..89c8c4632192d0056d0a2e8e72dba0076cbb7855 100644 (file)
@@ -123,6 +123,27 @@ pa_thread* pa_thread_self(void) {
     return pa_tls_get(thread_tls);
 }
 
+void* pa_thread_get_data(pa_thread *t) {
+    pa_assert(t);
+
+    return t->userdata;
+}
+
+void pa_thread_set_data(pa_thread *t, void *userdata) {
+    pa_assert(t);
+
+    t->userdata = userdata;
+}
+
+void pa_thread_set_name(pa_thread *t, const char *name) {
+    /* Not implemented */
+}
+
+const char *pa_thread_get_name(pa_thread *t) {
+    /* Not implemented */
+    return NULL;
+}
+
 void pa_thread_yield(void) {
     Sleep(0);
 }
index 1379168814426290e93cef9c1a2dd0a4c96acc24..8a9995dad0fae4acc0744992b270e49e25040fb8 100644 (file)
@@ -21,7 +21,9 @@
 #include <config.h>
 #endif
 
+#ifdef HAVE_PTHREAD
 #include <pthread.h>
+#endif
 
 #include <pulsecore/thread.h>
 #include <pulsecore/once.h>
@@ -33,7 +35,9 @@
 static pa_once once = PA_ONCE_INIT;
 static volatile unsigned n_run = 0;
 static const char * volatile ran_by = NULL;
+#ifdef HAVE_PTHREAD
 static pthread_barrier_t barrier;
+#endif
 static unsigned n_cpu;
 
 #define N_ITERATIONS 500
@@ -45,6 +49,7 @@ static void once_func(void) {
 }
 
 static void thread_func(void *data) {
+#ifdef HAVE_PTHREAD
     int r;
 
 #ifdef HAVE_PTHREAD_SETAFFINITY_NP
@@ -60,6 +65,7 @@ static void thread_func(void *data) {
 
     r = pthread_barrier_wait(&barrier);
     pa_assert(r == 0 || r == PTHREAD_BARRIER_SERIAL_THREAD);
+#endif /* HAVE_PTHREAD */
 
     pa_run_once(&once, once_func);
 }
@@ -72,7 +78,9 @@ int main(int argc, char *argv[]) {
     for (n = 0; n < N_ITERATIONS; n++) {
         pa_thread* threads[N_THREADS];
 
+#ifdef HAVE_PTHREAD
         pa_assert_se(pthread_barrier_init(&barrier, NULL, N_THREADS) == 0);
+#endif
 
         /* Yes, kinda ugly */
         pa_zero(once);
@@ -94,7 +102,9 @@ int main(int argc, char *argv[]) {
         n_run = 0;
         ran_by = NULL;
 
+#ifdef HAVE_PTHREAD
         pa_assert_se(pthread_barrier_destroy(&barrier) == 0);
+#endif
     }
 
     return 0;
index 4943a176685794b5d791fa29505aa3c34ca7be1e..4071e4296ea26cd46804dcdd24da69cbce3778e3 100644 (file)
@@ -94,8 +94,6 @@ int main(int argc, char *argv[]) {
     int i, k;
     pa_thread* t[THREADS_MAX];
 
-    assert(pa_thread_is_running(pa_thread_self()));
-
     mutex = pa_mutex_new(FALSE, FALSE);
     cond1 = pa_cond_new();
     cond2 = pa_cond_new();