From 5473f283f501ff9f5e38e89d3a2e89f738a7e76f Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 22 Aug 2011 09:04:48 -0400 Subject: [PATCH] Properly call strerror() in thread test; add comments. --- src/test/thread/thread_test.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/test/thread/thread_test.c b/src/test/thread/thread_test.c index 6fef840d52..736466c6b2 100644 --- a/src/test/thread/thread_test.c +++ b/src/test/thread/thread_test.c @@ -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