pgsql-server: > win32 doesn't support a static initializer for mutexes,

Started by Bruce Momjianabout 22 years ago1 messagescomitters
Jump to latest
#1Bruce Momjian
bruce@momjian.us

Log Message:
-----------

win32 doesn't support a static initializer for mutexes, thus the first
user must initialize the lock. The problem are concurrent "first" users
- the pthread_mutex_t initialization must be synchronized.
The current implementation is broken, the attached patches fixes that:
mutex_initlock is a spinlock. If the pthread_mutex_t mutex is not
initialized, then the spinlock is acquired, if the pthread_mutex_t is
initialized if it's not yet initialized and then the spinlock is dropped.

Manfred Spraul

Modified Files:
--------------
pgsql-server/src/interfaces/libpq:
fe-connect.c (r1.277 -> r1.278)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/interfaces/libpq/fe-connect.c.diff?r1=1.277&r2=1.278)
fe-secure.c (r1.44 -> r1.45)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/interfaces/libpq/fe-secure.c.diff?r1=1.44&r2=1.45)