summaryrefslogtreecommitdiff
path: root/locks
diff options
context:
space:
mode:
authorwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2003-08-06 23:54:31 +0000
committerwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2003-08-06 23:54:31 +0000
commit51512c9451af20a0e763a56b97491034ae972ec4 (patch)
tree3fe19cfe02faf7ee777ac33437bc57cb9a197df5 /locks
parentcf4d3042418e5f6c325a7dd9afaeaf6a433c94d4 (diff)
downloadlibapr-51512c9451af20a0e763a56b97491034ae972ec4.tar.gz
Introduce the proc_mutex_no_tryacquire stub, returning APR_ENOTIMPL,
for all unimplemented trylock vectors. Prevents us from simply segfaulting when a given proc_mutex style does not support trylock. No Apache HTTP Server code attempted an apr_proc_mutex_trylock, but this could affect other platforms, and was inconsistent with the implementations of other mutex methods and other platform implementations. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64578 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'locks')
-rw-r--r--locks/unix/proc_mutex.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/locks/unix/proc_mutex.c b/locks/unix/proc_mutex.c
index 8d020db2b..e02796fe0 100644
--- a/locks/unix/proc_mutex.c
+++ b/locks/unix/proc_mutex.c
@@ -62,6 +62,10 @@ APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex)
return apr_pool_cleanup_run(mutex->pool, mutex, apr_proc_mutex_cleanup);
}
+static apr_status_t proc_mutex_no_tryacquire(apr_proc_mutex_t *new_mutex)
+{
+ return APR_ENOTIMPL;
+}
#if APR_HAS_POSIXSEM_SERIALIZE
@@ -188,7 +192,7 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_posix_methods =
#endif
proc_mutex_posix_create,
proc_mutex_posix_acquire,
- NULL, /* no tryacquire */
+ proc_mutex_no_tryacquire,
proc_mutex_posix_release,
proc_mutex_posix_cleanup,
proc_mutex_posix_child_init,
@@ -293,7 +297,7 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_sysv_methods =
#endif
proc_mutex_sysv_create,
proc_mutex_sysv_acquire,
- NULL, /* no tryacquire */
+ proc_mutex_no_tryacquire,
proc_mutex_sysv_release,
proc_mutex_sysv_cleanup,
proc_mutex_sysv_child_init,
@@ -456,7 +460,7 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_proc_pthread_method
APR_PROCESS_LOCK_MECH_IS_GLOBAL,
proc_mutex_proc_pthread_create,
proc_mutex_proc_pthread_acquire,
- NULL, /* no tryacquire */
+ proc_mutex_no_tryacquire,
proc_mutex_proc_pthread_release,
proc_mutex_proc_pthread_cleanup,
proc_mutex_proc_pthread_child_init,
@@ -579,7 +583,7 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_fcntl_methods =
#endif
proc_mutex_fcntl_create,
proc_mutex_fcntl_acquire,
- NULL, /* no tryacquire */
+ proc_mutex_no_tryacquire,
proc_mutex_fcntl_release,
proc_mutex_fcntl_cleanup,
proc_mutex_fcntl_child_init,
@@ -705,7 +709,7 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_flock_methods =
#endif
proc_mutex_flock_create,
proc_mutex_flock_acquire,
- NULL, /* no tryacquire */
+ proc_mutex_no_tryacquire,
proc_mutex_flock_release,
proc_mutex_flock_cleanup,
proc_mutex_flock_child_init,