Index: interfaces/libpq/fe-connect.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-connect.c,v
retrieving revision 1.274
diff -u -r1.274 fe-connect.c
--- interfaces/libpq/fe-connect.c 10 Jun 2004 22:26:24 -0000 1.274
+++ interfaces/libpq/fe-connect.c 11 Jun 2004 17:33:34 -0000
@@ -882,11 +882,13 @@
const char *node = NULL;
int ret;
#ifdef ENABLE_THREAD_SAFETY
+#ifndef WIN32
static pthread_once_t check_sigpipe_once = PTHREAD_ONCE_INIT;
/* Check only on first connection request */
pthread_once(&check_sigpipe_once, check_sigpipe_handler);
#endif
+#endif
if (!conn)
return 0;
@@ -3183,11 +3185,22 @@
}
static pgthreadlock_t default_threadlock;
+
static void
default_threadlock(int acquire)
{
#ifdef ENABLE_THREAD_SAFETY
+#ifndef WIN32
static pthread_mutex_t singlethread_lock = PTHREAD_MUTEX_INITIALIZER;
+#else
+ static pthread_mutex_t singlethread_lock;
+ static int mutex_initialized = 0;
+ if (!mutex_initialized)
+ {
+ mutex_initialized = 1;
+ pthread_mutex_init(&singlethread_lock, NULL);
+ }
+#endif
if (acquire)
pthread_mutex_lock(&singlethread_lock);
else
Index: interfaces/libpq/fe-secure.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-secure.c,v
retrieving revision 1.41
diff -u -r1.41 fe-secure.c
--- interfaces/libpq/fe-secure.c 3 Jun 2004 00:13:19 -0000 1.41
+++ interfaces/libpq/fe-secure.c 11 Jun 2004 17:33:36 -0000
@@ -864,8 +864,17 @@
init_ssl_system(PGconn *conn)
{
#ifdef ENABLE_THREAD_SAFETY
-static pthread_mutex_t init_mutex = PTHREAD_MUTEX_INITIALIZER;
-
+#ifndef WIN32
+ static pthread_mutex_t init_mutex = PTHREAD_MUTEX_INITIALIZER;
+ #else
+ static pthread_mutex_t init_mutex;
+ static int mutex_initialized = 0;
+ if (!mutex_initialized)
+ {
+ mutex_initialized = 1;
+ pthread_mutex_init(&init_mutex, NULL);
+ }
+#endif
pthread_mutex_lock(&init_mutex);
if (pq_initssllib && pq_lockarray == NULL) {
@@ -1171,6 +1180,7 @@
#ifdef ENABLE_THREAD_SAFETY
+#ifndef WIN32
/*
* Check SIGPIPE handler and perhaps install our own.
*/
@@ -1210,6 +1220,7 @@
if (!PQinSend())
exit(128 + SIGPIPE); /* typical return value for SIG_DFL */
}
+#endif
#endif
/*
Index: interfaces/libpq/win32.mak
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/win32.mak,v
retrieving revision 1.24
diff -u -r1.24 win32.mak
--- interfaces/libpq/win32.mak 4 Jun 2004 13:30:04 -0000 1.24
+++ interfaces/libpq/win32.mak 11 Jun 2004 17:33:37 -0000
@@ -74,21 +74,25 @@
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
-@erase "$(INTDIR)\wchar.obj"
-@erase "$(INTDIR)\encnames.obj"
+ -@erase "$(INTDIR)\pthread-win32.obj"
-config: ..\..\include\pg_config.h pg_config_paths.h
+config: ..\..\include\pg_config.h pthread.h pg_config_paths.h
..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h
+pthread.h: pthread.h.win32
+ copy pthread.h.win32 pthread.h
+
pg_config_paths.h: win32.mak
echo #define SYSCONFDIR "" >pg_config_paths.h
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /D "FRONTEND" $(DEBUGDEF) /D\
+CPP_PROJ=/nologo /W3 /GX $(OPT) /I "..\..\include" /I. /D "FRONTEND" $(DEBUGDEF) /D\
"WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"
@@ -127,7 +131,8 @@
"$(INTDIR)\fe-secure.obj" \
"$(INTDIR)\pqexpbuffer.obj" \
"$(INTDIR)\wchar.obj" \
- "$(INTDIR)\encnames.obj"
+ "$(INTDIR)\encnames.obj" \
+ "$(INTDIR)\pthread-win32.obj"
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"