]> granicus.if.org Git - gc/commitdiff
Fix unchecked pthread_join() result in threadkey_test
authorIvan Maidanski <ivmai@mail.ru>
Mon, 29 Feb 2016 21:07:07 +0000 (00:07 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 29 Feb 2016 21:07:39 +0000 (00:07 +0300)
* tests/threadkey_test.c: Include stdio.h (unconditionally), stdlib.h
for fprintf() and exit().
* tests/threadkey_test.c (main): Abort in case of GC_pthread_join
failure.

tests/threadkey_test.c

index f87530e3323573782b9b5315795393a4b721e66c..859f53fddfc752c09c1a7e71940d86054aead0b5 100644 (file)
@@ -11,6 +11,9 @@
 
 #include "gc.h"
 
+#include <stdio.h>
+#include <stdlib.h>
+
 #if (!defined(GC_PTHREADS) || defined(GC_SOLARIS_THREADS) \
      || defined(__native_client__)) && !defined(SKIP_THREADKEY_TEST)
   /* FIXME: Skip this test on Solaris for now.  The test may fail on    */
@@ -21,8 +24,6 @@
 
 #ifdef SKIP_THREADKEY_TEST
 
-#include <stdio.h>
-
 int main (void)
 {
   printf("threadkey_test skipped\n");
@@ -91,7 +92,11 @@ int main (void)
     void *res;
     if (GC_pthread_create (&t, NULL, entry, NULL) == 0
         && (i & 1) != 0) {
-      (void)GC_pthread_join(t, &res);
+      int code = GC_pthread_join(t, &res);
+      if (code != 0) {
+        fprintf(stderr, "Thread join failed %d\n", code);
+        exit(2);
+      }
     }
   }
   return 0;