From ddcb5bbf76dd991b5a7024bc3d4e212b97d27936 Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Thu, 29 Mar 2007 12:02:24 +0000 Subject: - Added patch by Magnus Hagander to use native win32 threads. - Fixed regression tests to run threading tests. --- src/interfaces/ecpg/include/ecpg-pthread-win32.h | 16 ++++++++++++++++ src/interfaces/ecpg/include/ecpg_config.h.in | 4 ++++ 2 files changed, 20 insertions(+) create mode 100644 src/interfaces/ecpg/include/ecpg-pthread-win32.h (limited to 'src/interfaces/ecpg/include') diff --git a/src/interfaces/ecpg/include/ecpg-pthread-win32.h b/src/interfaces/ecpg/include/ecpg-pthread-win32.h new file mode 100644 index 0000000000..df076ac8e5 --- /dev/null +++ b/src/interfaces/ecpg/include/ecpg-pthread-win32.h @@ -0,0 +1,16 @@ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg-pthread-win32.h,v 1.1 2007/03/29 12:02:24 meskes Exp $ */ +/* + * pthread mapping macros for win32 native thread implementation + */ +#ifndef _ECPG_PTHREAD_WIN32_H +#define _ECPG_PTHREAD_WIN32_H +#define pthread_mutex_lock(x) do { \ + if (*x == INVALID_HANDLE_VALUE) \ + *x = CreateMutex(NULL, FALSE, NULL); \ + WaitForSingleObject(*x, INFINITE); \ +} while (0); +#define pthread_mutex_unlock(x) ReleaseMutex(*x) +#define pthread_getspecific(x) TlsGetValue(x) +#define pthread_setspecific(x,y) TlsSetValue(x,y) +#define pthread_key_create(x,y) *x = TlsAlloc(); +#endif diff --git a/src/interfaces/ecpg/include/ecpg_config.h.in b/src/interfaces/ecpg/include/ecpg_config.h.in index e363cae665..52ed8c8173 100644 --- a/src/interfaces/ecpg/include/ecpg_config.h.in +++ b/src/interfaces/ecpg/include/ecpg_config.h.in @@ -11,3 +11,7 @@ (--enable-integer-datetimes) */ #undef USE_INTEGER_DATETIMES +/* Define to 1 to build client libraries as thread-safe code. + * (--enable-thread-safety) */ +#undef ENABLE_THREAD_SAFETY + -- cgit v1.2.1