You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by jo...@apache.org on 2021/07/02 14:37:55 UTC
svn commit: r1891204 - in /apr/apr/trunk:
include/arch/unix/apr_arch_thread_mutex.h locks/unix/thread_mutex.c
Author: jorton
Date: Fri Jul 2 14:37:54 2021
New Revision: 1891204
URL: http://svn.apache.org/viewvc?rev=1891204&view=rev
Log:
* locks/unix/thread_mutex.c,
include/arch/unix/apr_arch_thread_mutex.h: Completely drop the code
required imitate the mutex via a condition variable if
HAVE_PTHREAD_MUTEX_TIMEDLOCK is defined.
Modified:
apr/apr/trunk/include/arch/unix/apr_arch_thread_mutex.h
apr/apr/trunk/locks/unix/thread_mutex.c
Modified: apr/apr/trunk/include/arch/unix/apr_arch_thread_mutex.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/arch/unix/apr_arch_thread_mutex.h?rev=1891204&r1=1891203&r2=1891204&view=diff
==============================================================================
--- apr/apr/trunk/include/arch/unix/apr_arch_thread_mutex.h (original)
+++ apr/apr/trunk/include/arch/unix/apr_arch_thread_mutex.h Fri Jul 2 14:37:54 2021
@@ -33,8 +33,10 @@
struct apr_thread_mutex_t {
apr_pool_t *pool;
pthread_mutex_t mutex;
+#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
apr_thread_cond_t *cond;
int locked, num_waiters;
+#endif
};
#endif
Modified: apr/apr/trunk/locks/unix/thread_mutex.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/locks/unix/thread_mutex.c?rev=1891204&r1=1891203&r2=1891204&view=diff
==============================================================================
--- apr/apr/trunk/locks/unix/thread_mutex.c (original)
+++ apr/apr/trunk/locks/unix/thread_mutex.c Fri Jul 2 14:37:54 2021
@@ -121,6 +121,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
{
apr_status_t rv;
+#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
if (mutex->cond) {
apr_status_t rv2;
@@ -152,6 +153,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
return rv;
}
+#endif
rv = pthread_mutex_lock(&mutex->mutex);
#ifdef HAVE_ZOS_PTHREADS
@@ -167,6 +169,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
{
apr_status_t rv;
+#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
if (mutex->cond) {
apr_status_t rv2;
@@ -196,6 +199,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
return rv;
}
+#endif
rv = pthread_mutex_trylock(&mutex->mutex);
if (rv) {
@@ -298,6 +302,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
{
apr_status_t status;
+#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
if (mutex->cond) {
status = pthread_mutex_lock(&mutex->mutex);
if (status) {
@@ -320,6 +325,7 @@ APR_DECLARE(apr_status_t) apr_thread_mut
mutex->locked = 0;
}
+#endif
status = pthread_mutex_unlock(&mutex->mutex);
#ifdef HAVE_ZOS_PTHREADS
@@ -335,9 +341,12 @@ APR_DECLARE(apr_status_t) apr_thread_mut
{
apr_status_t rv, rv2 = APR_SUCCESS;
+#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
if (mutex->cond) {
rv2 = apr_thread_cond_destroy(mutex->cond);
}
+#endif
+
rv = apr_pool_cleanup_run(mutex->pool, mutex, thread_mutex_cleanup);
if (rv == APR_SUCCESS) {
rv = rv2;