summaryrefslogtreecommitdiff
path: root/locks
diff options
context:
space:
mode:
authorjim <jim@13f79535-47bb-0310-9956-ffa450edef68>2002-06-07 14:04:34 +0000
committerjim <jim@13f79535-47bb-0310-9956-ffa450edef68>2002-06-07 14:04:34 +0000
commitf1cd0b106da70b4d2c287222f238db48548221e3 (patch)
treea1e2d223ee191cded201c3d991ffce55604b8b3b /locks
parent2302a67c7b4252a6a886207099840bbcfc1f0248 (diff)
downloadlibapr-f1cd0b106da70b4d2c287222f238db48548221e3.tar.gz
Added 2 additional lock functions: apr_proc_mutex_name and
apr_proc_mutex_defname which returns the type name of the mutex (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT). Mostly useful under Unix were the locktypes are selectable. apr_proc_mutex_name takes a *apr_proc_mutex_t argument, whereas apr_proc_mutex_defname takes (and requires) none. For those systems that don't have selectable mutex types, I've "thought up" names that made sense... feel free to modify :) PR: Obtained from: Submitted by: Reviewed by: git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@63470 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'locks')
-rw-r--r--locks/beos/proc_mutex.c10
-rw-r--r--locks/netware/proc_mutex.c10
-rw-r--r--locks/os2/proc_mutex.c9
-rw-r--r--locks/unix/proc_mutex.c33
-rw-r--r--locks/win32/proc_mutex.c10
5 files changed, 67 insertions, 5 deletions
diff --git a/locks/beos/proc_mutex.c b/locks/beos/proc_mutex.c
index a5c68c867..455771424 100644
--- a/locks/beos/proc_mutex.c
+++ b/locks/beos/proc_mutex.c
@@ -157,6 +157,16 @@ APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex)
return stat;
}
+APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex)
+{
+ return "beossem";
+}
+
+APR_DECLARE(const char *) apr_proc_mutex_defname(void)
+{
+ return "beossem";
+}
+
APR_POOL_IMPLEMENT_ACCESSOR(proc_mutex)
/* Implement OS-specific accessors defined in apr_portable.h */
diff --git a/locks/netware/proc_mutex.c b/locks/netware/proc_mutex.c
index 113c875cd..e86802104 100644
--- a/locks/netware/proc_mutex.c
+++ b/locks/netware/proc_mutex.c
@@ -115,6 +115,16 @@ APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex)
return APR_ENOLOCK;
}
+APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex)
+{
+ return "netwarethread";
+}
+
+APR_DECLARE(const char *) apr_proc_mutex_defname(void)
+{
+ return "netwarethread";
+}
+
APR_POOL_IMPLEMENT_ACCESSOR(proc_mutex)
/* Implement OS-specific accessors defined in apr_portable.h */
diff --git a/locks/os2/proc_mutex.c b/locks/os2/proc_mutex.c
index 7cc329cc5..7338e466b 100644
--- a/locks/os2/proc_mutex.c
+++ b/locks/os2/proc_mutex.c
@@ -93,6 +93,15 @@ static apr_status_t proc_mutex_cleanup(void *vmutex)
return apr_proc_mutex_destroy(mutex);
}
+APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex)
+{
+ return "os2sem";
+}
+
+APR_DECLARE(const char *) apr_proc_mutex_defname(void)
+{
+ return "os2sem";
+}
APR_DECLARE(apr_status_t) apr_proc_mutex_create(apr_proc_mutex_t **mutex,
diff --git a/locks/unix/proc_mutex.c b/locks/unix/proc_mutex.c
index 3fa707cdf..e50499be7 100644
--- a/locks/unix/proc_mutex.c
+++ b/locks/unix/proc_mutex.c
@@ -177,7 +177,8 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_posix_methods =
NULL, /* no tryacquire */
proc_mutex_posix_release,
proc_mutex_posix_destroy,
- proc_mutex_posix_child_init
+ proc_mutex_posix_child_init,
+ "posixsem"
};
#endif /* Posix sem implementation */
@@ -292,7 +293,8 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_sysv_methods =
NULL, /* no tryacquire */
proc_mutex_sysv_release,
proc_mutex_sysv_destroy,
- proc_mutex_sysv_child_init
+ proc_mutex_sysv_child_init,
+ "sysvsem"
};
#endif /* SysV sem implementation */
@@ -466,7 +468,8 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_proc_pthread_method
NULL, /* no tryacquire */
proc_mutex_proc_pthread_release,
proc_mutex_proc_pthread_destroy,
- proc_mutex_proc_pthread_child_init
+ proc_mutex_proc_pthread_child_init,
+ "pthread"
};
#endif
@@ -601,7 +604,8 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_fcntl_methods =
NULL, /* no tryacquire */
proc_mutex_fcntl_release,
proc_mutex_fcntl_destroy,
- proc_mutex_fcntl_child_init
+ proc_mutex_fcntl_child_init,
+ "fcntl"
};
#endif /* fcntl implementation */
@@ -730,7 +734,8 @@ const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_flock_methods =
NULL, /* no tryacquire */
proc_mutex_flock_release,
proc_mutex_flock_destroy,
- proc_mutex_flock_child_init
+ proc_mutex_flock_child_init,
+ "flock"
};
#endif /* flock implementation */
@@ -813,6 +818,19 @@ static apr_status_t proc_mutex_choose_method(apr_proc_mutex_t *new_mutex, apr_lo
return APR_SUCCESS;
}
+APR_DECLARE(const char *) apr_proc_mutex_defname(void)
+{
+ apr_status_t rv;
+ apr_proc_mutex_t mutex;
+
+ if ((rv = proc_mutex_choose_method(&mutex, APR_LOCK_DEFAULT)) != APR_SUCCESS) {
+ return "unknown";
+ }
+ mutex.meth = mutex.inter_meth;
+
+ return apr_proc_mutex_name(&mutex);
+}
+
static apr_status_t proc_mutex_create(apr_proc_mutex_t *new_mutex, apr_lockmech_e mech, const char *fname)
{
apr_status_t rv;
@@ -935,6 +953,11 @@ APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex)
return mutex->meth->destroy(mutex);
}
+APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex)
+{
+ return mutex->meth->name;
+}
+
APR_POOL_IMPLEMENT_ACCESSOR(proc_mutex)
/* Implement OS-specific accessors defined in apr_portable.h */
diff --git a/locks/win32/proc_mutex.c b/locks/win32/proc_mutex.c
index 92638211d..19100cdd0 100644
--- a/locks/win32/proc_mutex.c
+++ b/locks/win32/proc_mutex.c
@@ -176,6 +176,16 @@ APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex)
return stat;
}
+APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex)
+{
+ return "win32mutex";
+}
+
+APR_DECLARE(const char *) apr_proc_mutex_defname(void)
+{
+ return "win32mutex";
+}
+
APR_POOL_IMPLEMENT_ACCESSOR(proc_mutex)
/* Implement OS-specific accessors defined in apr_portable.h */