diff options
author | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2003-08-06 23:54:31 +0000 |
---|---|---|
committer | wrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68> | 2003-08-06 23:54:31 +0000 |
commit | 51512c9451af20a0e763a56b97491034ae972ec4 (patch) | |
tree | 3fe19cfe02faf7ee777ac33437bc57cb9a197df5 /locks/unix | |
parent | cf4d3042418e5f6c325a7dd9afaeaf6a433c94d4 (diff) | |
download | libapr-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/unix')
-rw-r--r-- | locks/unix/proc_mutex.c | 14 |
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, |