You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by iv...@apache.org on 2019/09/03 05:18:23 UTC
svn commit: r1866302 - /apr/apr/trunk/locks/win32/thread_mutex.c
Author: ivan
Date: Tue Sep 3 05:18:23 2019
New Revision: 1866302
URL: http://svn.apache.org/viewvc?rev=1866302&view=rev
Log:
Refactor win32 thread_mutex code. No functional changes intended.
Modified:
apr/apr/trunk/locks/win32/thread_mutex.c
Modified: apr/apr/trunk/locks/win32/thread_mutex.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/locks/win32/thread_mutex.c?rev=1866302&r1=1866301&r2=1866302&view=diff
==============================================================================
--- apr/apr/trunk/locks/win32/thread_mutex.c (original)
+++ apr/apr/trunk/locks/win32/thread_mutex.c Tue Sep 3 05:18:23 2019
@@ -74,14 +74,20 @@ APR_DECLARE(apr_status_t) apr_thread_mut
{
if (mutex->type == thread_mutex_critical_section) {
EnterCriticalSection(&mutex->section);
+ return APR_SUCCESS;
}
else {
DWORD rv = WaitForSingleObject(mutex->handle, INFINITE);
- if ((rv != WAIT_OBJECT_0) && (rv != WAIT_ABANDONED)) {
- return (rv == WAIT_TIMEOUT) ? APR_EBUSY : apr_get_os_error();
+ if (rv == WAIT_OBJECT_0 || rv == WAIT_ABANDONED) {
+ return APR_SUCCESS;
+ }
+ else if (rv == WAIT_TIMEOUT) {
+ return APR_EBUSY;
+ }
+ else {
+ return apr_get_os_error();
}
- }
- return APR_SUCCESS;
+ }
}
APR_DECLARE(apr_status_t) apr_thread_mutex_trylock(apr_thread_mutex_t *mutex)
@@ -90,14 +96,20 @@ APR_DECLARE(apr_status_t) apr_thread_mut
if (!TryEnterCriticalSection(&mutex->section)) {
return APR_EBUSY;
}
+ return APR_SUCCESS;
}
else {
DWORD rv = WaitForSingleObject(mutex->handle, 0);
- if ((rv != WAIT_OBJECT_0) && (rv != WAIT_ABANDONED)) {
- return (rv == WAIT_TIMEOUT) ? APR_EBUSY : apr_get_os_error();
+ if (rv == WAIT_OBJECT_0 || rv == WAIT_ABANDONED) {
+ return APR_SUCCESS;
+ }
+ else if (rv == WAIT_TIMEOUT) {
+ return APR_EBUSY;
+ }
+ else {
+ return apr_get_os_error();
}
- }
- return APR_SUCCESS;
+ }
}
APR_DECLARE(apr_status_t) apr_thread_mutex_timedlock(apr_thread_mutex_t *mutex,
@@ -108,11 +120,16 @@ APR_DECLARE(apr_status_t) apr_thread_mut
rv = apr_wait_for_single_object(mutex->handle, timeout);
- if ((rv != WAIT_OBJECT_0) && (rv != WAIT_ABANDONED)) {
- return (rv == WAIT_TIMEOUT) ? APR_TIMEUP : apr_get_os_error();
+ if (rv == WAIT_OBJECT_0 || rv == WAIT_ABANDONED) {
+ return APR_SUCCESS;
}
- return APR_SUCCESS;
- }
+ else if (rv == WAIT_TIMEOUT) {
+ return APR_TIMEUP;
+ }
+ else {
+ return apr_get_os_error();
+ }
+ }
return APR_ENOTIMPL;
}