mirror of https://github.com/postgres/postgres
Use unnamed POSIX semaphores on Cygwin.
Testing on CI showed that Cygwin's semctl() can fail with EAGAIN (possibly due to resource limits in cygserver that could be tuned, not examined). Switch to so-called POSIX semaphores instead, which don't seem to fail in that way (possibly due to a more direct implementation using Windows semaphore primitives instead of talking to cygserver, based on a cursory glance at the source). Other known problems still prevent PostgreSQL from running on Cygwin without random crashes, but this rarer problem was noticed while testing. Discussion: https://postgr.es/m/CA%2BhUKG%2BQ6DU4Ov9LrvUyDcF3oHS4KMRVSKmVGaeePq-kOyG9gA%40mail.gmail.com
This commit is contained in:
parent
39cffe95f2
commit
f2857af485
|
@ -211,6 +211,7 @@ if host_system == 'aix'
|
|||
memset_loop_limit = 0
|
||||
|
||||
elif host_system == 'cygwin'
|
||||
sema_kind = 'unnamed_posix'
|
||||
cppflags += '-D_GNU_SOURCE'
|
||||
dlsuffix = '.dll'
|
||||
mod_link_args_fmt = ['@0@']
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
# src/template/cygwin
|
||||
|
||||
# Prefer unnamed POSIX semaphores if available, unless user overrides choice
|
||||
if test x"$PREFERRED_SEMAPHORES" = x"" ; then
|
||||
PREFERRED_SEMAPHORES=UNNAMED_POSIX
|
||||
fi
|
||||
|
||||
SRCH_LIB="/usr/local/lib"
|
||||
|
||||
# This is required for ppoll(2), and perhaps other things
|
||||
|
|
Loading…
Reference in New Issue