]> granicus.if.org Git - postgresql/commit
> win32 doesn't support a static initializer for mutexes, thus the first
authorBruce Momjian <bruce@momjian.us>
Mon, 12 Jul 2004 14:23:28 +0000 (14:23 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 12 Jul 2004 14:23:28 +0000 (14:23 +0000)
commitf4c5e06edf03774258886c802e63c5a3b9cf1e4c
treee1f4598629ceee4835e49e60c43c297745e92632
parenta29d26a3cdf8c61313ae459366eeb05f67772cc0
> 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
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-secure.c