Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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