1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-24 09:27:52 +03:00
Files
postgres/src/interfaces/libpq/pthread-win32.c
Magnus Hagander 206378e4ab Use CRITICAL_SECTION instead of Mutexes for thread-locking in libpq on
Windows, for better performance.

Per suggestion from Andrew Chernow, but not his patch since the underlying
code was changed to deal with return values.
2008-05-21 14:20:48 +00:00

62 lines
1.0 KiB
C

/*-------------------------------------------------------------------------
*
* pthread-win32.c
* partial pthread implementation for win32
*
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
* IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/libpq/pthread-win32.c,v 1.17 2008/05/21 14:20:48 mha Exp $
*
*-------------------------------------------------------------------------
*/
#include "postgres_fe.h"
#include <windows.h>
#include "pthread-win32.h"
DWORD
pthread_self(void)
{
return GetCurrentThreadId();
}
void
pthread_setspecific(pthread_key_t key, void *val)
{
}
void *
pthread_getspecific(pthread_key_t key)
{
return NULL;
}
int
pthread_mutex_init(pthread_mutex_t *mp, void *attr)
{
*mp = (CRITICAL_SECTION *)malloc(sizeof(CRITICAL_SECTION));
if (!*mp)
return 1;
InitializeCriticalSection(*mp);
return 0;
}
int
pthread_mutex_lock(pthread_mutex_t *mp)
{
if (!*mp)
return 1;
EnterCriticalSection(*mp);
return 0;
}
int
pthread_mutex_unlock(pthread_mutex_t *mp)
{
if (!*mp)
return 1;
LeaveCriticalSection(*mp);
return 0;
}