summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2023-01-06 10:09:02 +1300
committerThomas Munro <tmunro@postgresql.org>2023-01-06 10:33:28 +1300
commitf2857af485a00ab5dbfa2c83af9d83afe4378239 (patch)
tree33e01fe3398dc6434d4e427675ec06e930b2e971 /meson.build
parent39cffe95f2c5d77a268db9f04c2b2aaf2294ad76 (diff)
downloadpostgresql-f2857af485a00ab5dbfa2c83af9d83afe4378239.tar.gz
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
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build1
1 files changed, 1 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 8999170b4d..45fb9dd616 100644
--- a/meson.build
+++ b/meson.build
@@ -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@']