-/* $Id$ */
-
/***
This file is part of PulseAudio.
PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2 of the License,
+ by the Free Software Foundation; either version 2.1 of the License,
or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but
#include <unistd.h>
#include <pulse/util.h>
-#include <pulse/xmalloc.h>
#include <pulsecore/asyncq.h>
#include <pulsecore/thread.h>
#include <pulsecore/log.h>
-#include <pulsecore/core-util.h>
#include <pulsecore/macro.h>
static void producer(void *_q) {
pa_asyncq *q = _q;
int i;
-
+
for (i = 0; i < 1000; i++) {
- pa_asyncq_push(q, (void*) (i+1), 1);
- printf("pushed %i\n", i);
+ pa_log_debug("pushing %i", i);
+ pa_asyncq_push(q, PA_UINT_TO_PTR(i+1), 1);
}
- pa_asyncq_push(q, (void*) -1, 1);
- printf("pushed end\n");
+ pa_asyncq_push(q, PA_UINT_TO_PTR(-1), TRUE);
+ pa_log_debug("pushed end");
}
static void consumer(void *_q) {
void *p;
int i;
- sleep(1);
-
+ pa_msleep(1000);
+
for (i = 0;; i++) {
- p = pa_asyncq_pop(q, 1);
+ p = pa_asyncq_pop(q, TRUE);
- if (p == (void*) -1)
+ if (p == PA_UINT_TO_PTR(-1))
break;
- pa_assert(p == (void *) (i+1));
-
- printf("popped %i\n", i);
+ pa_assert(p == PA_UINT_TO_PTR(i+1));
+
+ pa_log_debug("popped %i", i);
}
- printf("popped end\n");
+ pa_log_debug("popped end");
}
int main(int argc, char *argv[]) {
pa_asyncq *q;
pa_thread *t1, *t2;
-
+
+ if (!getenv("MAKE_CHECK"))
+ pa_log_set_level(PA_LOG_DEBUG);
+
pa_assert_se(q = pa_asyncq_new(0));
- pa_assert_se(t1 = pa_thread_new(producer, q));
- pa_assert_se(t2 = pa_thread_new(consumer, q));
+ pa_assert_se(t1 = pa_thread_new("producer", producer, q));
+ pa_assert_se(t2 = pa_thread_new("consumer", consumer, q));
pa_thread_free(t1);
pa_thread_free(t2);