jorton 2004/06/14 14:16:40
Modified: build apr_hints.m4
. CHANGES configure.in
Log:
* 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
1.63 +1 -0 apr/build/apr_hints.m4
Index: apr_hints.m4
===================================================================
RCS file: /home/cvs/apr/build/apr_hints.m4,v
retrieving revision 1.62
retrieving revision 1.63
diff -d -w -u -r1.62 -r1.63
--- apr_hints.m4 11 Jun 2004 15:00:21 -0000 1.62
+++ apr_hints.m4 14 Jun 2004 21:16:40 -0000 1.63
@@ -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])
1.472 +8 -0 apr/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr/CHANGES,v
retrieving revision 1.471
retrieving revision 1.472
diff -d -w -u -r1.471 -r1.472
--- CHANGES 1 Jun 2004 10:03:47 -0000 1.471
+++ CHANGES 14 Jun 2004 21:16:40 -0000 1.472
@@ -7,6 +7,14 @@
Changes with APR 1.0
+ *) 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]
+
+ *) Add apr_threadattr_guardsize_set() for overriding the default stack
+ guard area size for created created by apr_thread_create().
+ [Joe Orton]
+
*) Add apr_shm_remove() function for removing a named shared
memory segment. [Amit Athavale <amit_athavale persistent.co.in>]
1.589 +4 -10 apr/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.588
retrieving revision 1.589
diff -d -w -u -r1.588 -r1.589
--- configure.in 14 Jun 2004 08:53:31 -0000 1.588
+++ configure.in 14 Jun 2004 21:16:40 -0000 1.589
@@ -1597,8 +1597,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()]))
@@ -1606,14 +1608,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