summaryrefslogtreecommitdiffstats
path: root/test/test_sem.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-08-18 16:57:17 -0400
committerDavid Robillard <d@drobilla.net>2022-08-18 16:57:17 -0400
commit0c001d5c7fd4c6c5d9ceeb55ba5fac1780b441af (patch)
tree7e42a1e6ac699fd7c59ad3dfcd4c7c5be2818c75 /test/test_sem.c
parentb9d58f74ea1d072e7a2d1c862dc7a1e0fe5fccb0 (diff)
downloadzix-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.c14
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;