diff options
author | rbb <rbb@13f79535-47bb-0310-9956-ffa450edef68> | 2002-05-02 00:52:01 +0000 |
---|---|---|
committer | rbb <rbb@13f79535-47bb-0310-9956-ffa450edef68> | 2002-05-02 00:52:01 +0000 |
commit | 59f9e4498e3c28943953e27a014f1f9a50b48ec7 (patch) | |
tree | 2d3fcc46c4db4896dc7ed283c5111f7cef740e41 | |
parent | 75a20fea1135b266deaf66e29b1703d100252f07 (diff) | |
download | libapr-59f9e4498e3c28943953e27a014f1f9a50b48ec7.tar.gz |
Add apr_os_get function for global_mutexes.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@63346 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | include/apr_portable.h | 19 | ||||
-rw-r--r-- | locks/unix/global_mutex.c | 12 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/apr_portable.h b/include/apr_portable.h index 35648dc06..9252f4d2b 100644 --- a/include/apr_portable.h +++ b/include/apr_portable.h @@ -74,6 +74,7 @@ #include "apr_file_io.h" #include "apr_network_io.h" #include "apr_errno.h" +#include "apr_global_mutex.h" #include "apr_proc_mutex.h" #include "apr_time.h" #include "apr_dso.h" @@ -217,6 +218,24 @@ struct apr_os_sock_info_t { typedef struct apr_os_sock_info_t apr_os_sock_info_t; +#if APR_PROCESS_LOCK_IS_GLOBAL +#define apr_os_global_mutex_t apr_os_proc_mutex_t +#define apr_os_global_mutex_get apr_os_proc_mutex_get +#else + struct apr_os_global_mutex_t { + apr_pool_t *pool; + apr_proc_mutex_t *proc_mutex; +#if APR_HAS_THREADS + apr_thread_mutex_t *thread_mutex; +#endif /* APR_HAS_THREADS */ + }; + typedef struct apr_os_global_mutex_t apr_os_global_mutex_t; + +APR_DECLARE(apr_status_t) apr_os_global_mutex_get(apr_os_global_mutex_t *ospmutex, + apr_global_mutex_t *pmutex); +#endif + + /** * convert the file from apr type to os specific type. * @param thefile The os specific file we are converting to diff --git a/locks/unix/global_mutex.c b/locks/unix/global_mutex.c index 15fab9481..763d0b0b5 100644 --- a/locks/unix/global_mutex.c +++ b/locks/unix/global_mutex.c @@ -57,6 +57,7 @@ #include "global_mutex.h" #include "apr_proc_mutex.h" #include "apr_thread_mutex.h" +#include "apr_portable.h" static apr_status_t global_mutex_cleanup(void *data) { @@ -178,6 +179,17 @@ APR_DECLARE(apr_status_t) apr_global_mutex_unlock(apr_global_mutex_t *mutex) return APR_SUCCESS; } +APR_DECLARE(apr_status_t) apr_os_global_mutex_get(apr_os_global_mutex_t *ospmutex, + apr_global_mutex_t *pmutex) +{ + ospmutex->pool = pmutex->pool; + ospmutex->proc_mutex = pmutex->proc_mutex; +#if APR_HAS_THREADS + ospmutex->thread_mutex = pmutex->thread_mutex; +#endif + return APR_SUCCESS; +} + APR_DECLARE(apr_status_t) apr_global_mutex_destroy(apr_global_mutex_t *mutex) { return apr_pool_cleanup_run(mutex->pool, mutex, global_mutex_cleanup); |