Skip to content
Snippets Groups Projects
Commit 1b4e8255 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Simplify thread test program.

parent 0fa2afa9
Branches
Tags
No related merge requests found
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/tools/thread/thread_test.c,v 1.18 2004/04/21 20:58:56 momjian Exp $ * $PostgreSQL: pgsql/src/tools/thread/thread_test.c,v 1.19 2004/04/22 23:58:03 momjian Exp $
* *
* This program tests to see if your standard libc functions use * This program tests to see if your standard libc functions use
* pthread_setspecific()/pthread_getspecific() to be thread-safe. * pthread_setspecific()/pthread_getspecific() to be thread-safe.
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <sys/types.h> #include <sys/types.h>
#include <pwd.h> #include <pwd.h>
#include <string.h> #include <string.h>
#include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
...@@ -54,9 +53,9 @@ struct passwd *passwd_p2; ...@@ -54,9 +53,9 @@ struct passwd *passwd_p2;
struct hostent *hostent_p1; struct hostent *hostent_p1;
struct hostent *hostent_p2; struct hostent *hostent_p2;
bool gethostbyname_threadsafe; bool gethostbyname_threadsafe = false;
bool getpwuid_threadsafe; bool getpwuid_threadsafe = false;
bool strerror_threadsafe; bool strerror_threadsafe = false;
bool platform_is_threadsafe = true; bool platform_is_threadsafe = true;
pthread_mutex_t init_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t init_mutex = PTHREAD_MUTEX_INITIALIZER;
...@@ -92,42 +91,16 @@ defines to your template/$port file before compiling this program.\n\n" ...@@ -92,42 +91,16 @@ defines to your template/$port file before compiling this program.\n\n"
while (thread1_done == 0 || thread2_done == 0) while (thread1_done == 0 || thread2_done == 0)
sched_yield(); /* if this is a portability problem, remove it */ sched_yield(); /* if this is a portability problem, remove it */
fprintf(stderr, "errno is thread-safe\n\n"); fprintf(stderr, "errno is thread-safe\n");
printf("Add this to your template/$port file:\n\n");
if (strerror_p1 != strerror_p2) if (strerror_p1 != strerror_p2)
{
printf("STRERROR_THREADSAFE=yes\n");
strerror_threadsafe = true; strerror_threadsafe = true;
}
else
{
printf("STRERROR_THREADSAFE=no\n");
strerror_threadsafe = false;
}
if (passwd_p1 != passwd_p2) if (passwd_p1 != passwd_p2)
{
printf("GETPWUID_THREADSAFE=yes\n");
getpwuid_threadsafe = true; getpwuid_threadsafe = true;
}
else
{
printf("GETPWUID_THREADSAFE=no\n");
getpwuid_threadsafe = false;
}
if (hostent_p1 != hostent_p2) if (hostent_p1 != hostent_p2)
{
printf("GETHOSTBYNAME_THREADSAFE=yes\n");
gethostbyname_threadsafe = true; gethostbyname_threadsafe = true;
}
else
{
printf("GETHOSTBYNAME_THREADSAFE=no\n");
gethostbyname_threadsafe = false;
}
pthread_mutex_unlock(&init_mutex); /* let children exit */ pthread_mutex_unlock(&init_mutex); /* let children exit */
...@@ -141,11 +114,11 @@ defines to your template/$port file before compiling this program.\n\n" ...@@ -141,11 +114,11 @@ defines to your template/$port file before compiling this program.\n\n"
#else #else
printf("Your system uses strerror() which is "); printf("Your system uses strerror() which is ");
if (strerror_threadsafe) if (strerror_threadsafe)
printf("thread-safe\n"); printf("thread-safe.\n");
else else
{ {
platform_is_threadsafe = false; platform_is_threadsafe = false;
printf("not thread-safe\n"); printf("not thread-safe.\n");
} }
#endif #endif
...@@ -154,11 +127,11 @@ defines to your template/$port file before compiling this program.\n\n" ...@@ -154,11 +127,11 @@ defines to your template/$port file before compiling this program.\n\n"
#else #else
printf("Your system uses getpwuid() which is "); printf("Your system uses getpwuid() which is ");
if (getpwuid_threadsafe) if (getpwuid_threadsafe)
printf("thread-safe\n"); printf("thread-safe.\n");
else else
{ {
platform_is_threadsafe = false; platform_is_threadsafe = false;
printf("not thread-safe\n"); printf("not thread-safe.\n");
} }
#endif #endif
...@@ -171,11 +144,11 @@ defines to your template/$port file before compiling this program.\n\n" ...@@ -171,11 +144,11 @@ defines to your template/$port file before compiling this program.\n\n"
#else #else
printf("Your system uses gethostbyname which is "); printf("Your system uses gethostbyname which is ");
if (gethostbyname_threadsafe) if (gethostbyname_threadsafe)
printf("thread-safe\n"); printf("thread-safe.\n");
else else
{ {
platform_is_threadsafe = false; platform_is_threadsafe = false;
printf("not thread-safe\n"); printf("not thread-safe.\n");
} }
#endif #endif
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment