jorton 2004/06/22 01:45:04
Modified: . Tag: APR_0_9_BRANCH CHANGES configure.in
build Tag: APR_0_9_BRANCH apr_hints.m4
Log:
Backport from HEAD:
* configure.in: Don't use POSIX semaphores or cross-process pthread
mutexes as the default inter-process locking mechanism.
* build/apr_hints.m4: Force default inter-process locking mechanism to
fcntl for Solaris, as per 1.3.
Reviewed by: Jeff Trawick
Revision Changes Path
No revision
No revision
1.426.2.23 +4 -0 apr/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr/CHANGES,v
retrieving revision 1.426.2.22
retrieving revision 1.426.2.23
diff -d -w -u -r1.426.2.22 -r1.426.2.23
--- CHANGES 11 Jun 2004 14:59:25 -0000 1.426.2.22
+++ CHANGES 22 Jun 2004 08:45:04 -0000 1.426.2.23
@@ -1,5 +1,9 @@
Changes with APR 0.9.5
+ *) Change default inter-process locking mechanisms: POSIX semaphores
+ and pthread cross-process mutexes are not used by default; on
+ Solaris, fcntl locks are used by default. [Joe Orton]
+
*) Don't try to enable run-time linking on AIX < 4.2, as this
results in invalid linker options being used. PR 29170.
[Jeff Trawick]
1.535.2.12 +4 -10 apr/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.535.2.11
retrieving revision 1.535.2.12
diff -d -w -u -r1.535.2.11 -r1.535.2.12
--- configure.in 27 May 2004 21:12:47 -0000 1.535.2.11
+++ configure.in 22 Jun 2004 08:45:04 -0000 1.535.2.12
@@ -1544,8 +1544,10 @@
# See which lock mechanism we'll select by default on this system.
# The last APR_DECIDE to execute sets the default.
# At this stage, we match the ordering in Apache 1.3
-# which is (highest to lowest): pthread -> posixsem -> sysvsem -> fcntl ->
flock
-#
+# which is (highest to lowest): sysvsem -> fcntl -> flock.
+# POSIX semaphores and cross-process pthread mutexes are not
+# used by default since they have less desirable behaviour when
+# e.g. a process holding the mutex segfaults.
APR_BEGIN_DECISION([apr_lock implementation method])
APR_IFALLYES(func:flock define:LOCK_EX,
APR_DECIDE(USE_FLOCK_SERIALIZE, [4.2BSD-style flock()]))
@@ -1553,14 +1555,6 @@
APR_DECIDE(USE_FCNTL_SERIALIZE, [SVR4-style fcntl()]))
APR_IFALLYES(func:semget func:semctl define:SEM_UNDO,
APR_DECIDE(USE_SYSVSEM_SERIALIZE, [SysV IPC semget()]))
-APR_IFALLYES(header:semaphore.h func:sem_open func_sem_close dnl
- func_sem_unlink func:sem_post func_sem_wait,
- APR_DECIDE(USE_POSIXSEM_SERIALIZE, [POSIX sem_open()]))
-# note: the current APR use of shared mutex requires /dev/zero
-APR_IFALLYES(header:pthread.h define:PTHREAD_PROCESS_SHARED dnl
- func:pthread_mutexattr_setpshared dnl
- file:/dev/zero,
- APR_DECIDE(USE_PROC_PTHREAD_SERIALIZE, [pthread mutex]))
if test "x$apr_lock_method" != "x"; then
APR_DECISION_FORCE($apr_lock_method)
fi
No revision
No revision
1.53.2.8 +1 -0 apr/build/apr_hints.m4
Index: apr_hints.m4
===================================================================
RCS file: /home/cvs/apr/build/apr_hints.m4,v
retrieving revision 1.53.2.7
retrieving revision 1.53.2.8
diff -d -w -u -r1.53.2.7 -r1.53.2.8
--- apr_hints.m4 11 Jun 2004 14:59:26 -0000 1.53.2.7
+++ apr_hints.m4 22 Jun 2004 08:45:04 -0000 1.53.2.8
@@ -198,6 +198,7 @@
*-solaris2*)
PLATOSVERS=`echo $host | sed 's/^.*solaris2.//'`
APR_ADDTO(CPPFLAGS, [-DSOLARIS2=$PLATOSVERS -D_POSIX_PTHREAD_SEMANTICS
-D_REENTRANT])
+ APR_SETIFNULL(apr_lock_method, [USE_FCNTL_SERIALIZE])
;;
*-sunos4*)
APR_ADDTO(CPPFLAGS, [-DSUNOS4])