]> granicus.if.org Git - postgresql/commitdiff
Properly call strerror() in thread test; add comments.
authorBruce Momjian <bruce@momjian.us>
Mon, 22 Aug 2011 13:04:48 +0000 (09:04 -0400)
committerBruce Momjian <bruce@momjian.us>
Mon, 22 Aug 2011 13:04:48 +0000 (09:04 -0400)
src/test/thread/thread_test.c

index 6fef840d528ba889b036e8cba799259dd40ac14b..736466c6b2ae4ca83f8733a4fb36c62b896fafe2 100644 (file)
@@ -157,7 +157,7 @@ main(int argc, char *argv[])
        if (rc != 0)
        {
                fprintf(stderr, "Failed to create thread 1: %s **\nexiting\n",
-                               strerror(rc));
+                               strerror(errno));
                exit(1);
        }
        rc = pthread_create(&thread2, NULL, (void *(*) (void *)) func_call_2, NULL);
@@ -285,6 +285,11 @@ func_call_1(void)
        /* Set errno = EEXIST */
 
        /* create, then try to fail on exclusive create open */
+       /*
+        * It would be great to check errno here but if errno is not thread-safe
+        * we might get a value from the other thread and mis-report the cause
+        * of the failure.
+        */
 #ifdef WIN32
        if ((h1 = CreateFile(TEMP_FILENAME_1, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL)) ==
                INVALID_HANDLE_VALUE)
@@ -299,7 +304,7 @@ func_call_1(void)
        
 #ifdef WIN32
        if (CreateFile(TEMP_FILENAME_1, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL)
-               != INVALID_HANDLE_VALUE || GetLastError() != ERROR_FILE_EXISTS)
+               != INVALID_HANDLE_VALUE)
 #else
        if (open(TEMP_FILENAME_1, O_RDWR | O_CREAT | O_EXCL, 0600) >= 0)
 #endif