aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/thread/thread_test.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/test/thread/thread_test.c b/src/test/thread/thread_test.c
index 0782e8c66bb..6a818299129 100644
--- a/src/test/thread/thread_test.c
+++ b/src/test/thread/thread_test.c
@@ -150,6 +150,7 @@ main(int argc, char *argv[])
pthread_t thread1,
thread2;
int fd;
+ int rc;
#ifdef WIN32
WSADATA wsaData;
@@ -199,8 +200,23 @@ main(int argc, char *argv[])
/* Hold lock until we are ready for the child threads to exit. */
pthread_mutex_lock(&init_mutex);
- pthread_create(&thread1, NULL, (void *(*) (void *)) func_call_1, NULL);
- pthread_create(&thread2, NULL, (void *(*) (void *)) func_call_2, NULL);
+ rc = pthread_create(&thread1, NULL, (void *(*) (void *)) func_call_1, NULL);
+ if (rc != 0)
+ {
+ fprintf(stderr, "Failed to create thread 1: %s **\nexiting\n",
+ strerror(rc));
+ exit(1);
+ }
+ rc = pthread_create(&thread2, NULL, (void *(*) (void *)) func_call_2, NULL);
+ if (rc != 0)
+ {
+ /*
+ * strerror() might not be thread-safe, and we already spawned thread
+ * 1 that uses it
+ */
+ fprintf(stderr, "Failed to create thread 2 **\nexiting\n");
+ exit(1);
+ }
while (thread1_done == 0 || thread2_done == 0)
sched_yield(); /* if this is a portability problem, remove it */