summaryrefslogtreecommitdiff
path: root/locks/unix/global_mutex.c
diff options
context:
space:
mode:
Diffstat (limited to 'locks/unix/global_mutex.c')
-rw-r--r--locks/unix/global_mutex.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/locks/unix/global_mutex.c b/locks/unix/global_mutex.c
index 18de7e450d30c..907b5583699bb 100644
--- a/locks/unix/global_mutex.c
+++ b/locks/unix/global_mutex.c
@@ -15,6 +15,7 @@
*/
#include "apr.h"
+
#include "apr_strings.h"
#include "apr_arch_global_mutex.h"
#include "apr_proc_mutex.h"
@@ -59,7 +60,7 @@ APR_DECLARE(apr_status_t) apr_global_mutex_create(apr_global_mutex_t **mutex,
}
#if APR_HAS_THREADS
- if (m->proc_mutex->inter_meth->flags & APR_PROCESS_LOCK_MECH_IS_GLOBAL) {
+ if (m->proc_mutex->meth->flags & APR_PROCESS_LOCK_MECH_IS_GLOBAL) {
m->thread_mutex = NULL; /* We don't need a thread lock. */
}
else {
@@ -180,9 +181,24 @@ APR_DECLARE(const char *) apr_global_mutex_lockfile(apr_global_mutex_t *mutex)
return apr_proc_mutex_lockfile(mutex->proc_mutex);
}
+APR_DECLARE(apr_lockmech_e) apr_global_mutex_mech(apr_global_mutex_t *mutex)
+{
+ return apr_proc_mutex_mech(mutex->proc_mutex);
+}
+
APR_DECLARE(const char *) apr_global_mutex_name(apr_global_mutex_t *mutex)
{
return apr_proc_mutex_name(mutex->proc_mutex);
}
+APR_PERMS_SET_IMPLEMENT(global_mutex)
+{
+ apr_status_t rv;
+ apr_global_mutex_t *mutex = (apr_global_mutex_t *)theglobal_mutex;
+
+ rv = APR_PERMS_SET_FN(proc_mutex)(mutex->proc_mutex, perms, uid, gid);
+ return rv;
+}
+
APR_POOL_IMPLEMENT_ACCESSOR(global_mutex)
+