]> granicus.if.org Git - postgresql/commitdiff
Use SYSV semaphores rather than POSIX on Darwin >= 6.0 (i.e., OS X 10.2
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 26 Sep 2007 00:32:46 +0000 (00:32 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 26 Sep 2007 00:32:46 +0000 (00:32 +0000)
and up), per Chris Marcellino.  This avoids consuming O(N^2) file
descriptors to support N backends.  Tests suggest it's about a wash for
small installations, but large ones would have a problem.

src/template/darwin

index cb9afb20f3b54721266c6ce5ad15c6c36d7cb2dc..b017530a8715632f69d17e1566e19f796d0b06f7 100644 (file)
@@ -1,8 +1,18 @@
-# $PostgreSQL: pgsql/src/template/darwin,v 1.10 2006/03/11 04:38:40 momjian Exp $
+# $PostgreSQL: pgsql/src/template/darwin,v 1.11 2007/09/26 00:32:46 tgl Exp $
 
 # Apple's cpp-precomp seems a tad broken, so don't use it
 # (Note: on OS X before 10.2, you might need -traditional-cpp instead)
 CC="$CC -no-cpp-precomp"
 
-# Select appropriate semaphore support
-USE_NAMED_POSIX_SEMAPHORES=1
+# Select appropriate semaphore support.  Darwin 6.0 (Mac OS X 10.2) and up
+# support System V semaphores; before that we have to use POSIX semaphores,
+# which are less good for our purposes because they eat a file descriptor
+# per backend per max_connection slot.
+case $host_os in
+  darwin[015].*)
+    USE_NAMED_POSIX_SEMAPHORES=1
+    ;;
+  *)
+    USE_SYSV_SEMAPHORES=1
+    ;;
+esac