diff options
author | David Robillard <d@drobilla.net> | 2022-08-18 16:57:17 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-08-18 16:57:17 -0400 |
commit | 0c001d5c7fd4c6c5d9ceeb55ba5fac1780b441af (patch) | |
tree | 7e42a1e6ac699fd7c59ad3dfcd4c7c5be2818c75 /test/test_sem.c | |
parent | b9d58f74ea1d072e7a2d1c862dc7a1e0fe5fccb0 (diff) | |
download | zix-0c001d5c7fd4c6c5d9ceeb55ba5fac1780b441af.tar.gz zix-0c001d5c7fd4c6c5d9ceeb55ba5fac1780b441af.tar.bz2 zix-0c001d5c7fd4c6c5d9ceeb55ba5fac1780b441af.zip |
Fix or remove non-portable features in thread API
Thread function return values are inconsistent between nearly every threading
API out there. So, just ignore them entirely, and provide a typedef and
sentinel value so user code can be portable.
Diffstat (limited to 'test/test_sem.c')
-rw-r--r-- | test/test_sem.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/test/test_sem.c b/test/test_sem.c index 33859f1..bad0a44 100644 --- a/test/test_sem.c +++ b/test/test_sem.c @@ -14,7 +14,8 @@ static ZixSem sem; static unsigned n_signals = 1024; -static void* +ZIX_THREAD_FUNC +static ZixThreadResult reader(void* ZIX_UNUSED(arg)) { printf("Reader starting\n"); @@ -24,10 +25,11 @@ reader(void* ZIX_UNUSED(arg)) } printf("Reader finished\n"); - return NULL; + return ZIX_THREAD_RESULT; } -static void* +ZIX_THREAD_FUNC +static ZixThreadResult writer(void* ZIX_UNUSED(arg)) { printf("Writer starting\n"); @@ -37,7 +39,7 @@ writer(void* ZIX_UNUSED(arg)) } printf("Writer finished\n"); - return NULL; + return ZIX_THREAD_RESULT; } int @@ -62,8 +64,8 @@ main(int argc, char** argv) ZixThread writer_thread; // NOLINT assert(!zix_thread_create(&writer_thread, 128, writer, NULL)); - zix_thread_join(reader_thread, NULL); - zix_thread_join(writer_thread, NULL); + assert(!zix_thread_join(reader_thread)); + assert(!zix_thread_join(writer_thread)); zix_sem_destroy(&sem); return 0; |