From: Pavel Pautov
Date: Thu, 20 Jan 2022 01:37:34 +0000 (-0800)
Subject: Core: simplify reader lock release.
X-Git-Tag: release-1.21.6~3
X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=950390108cbb8431845635176c36466653b05487;p=nginx.git
Core: simplify reader lock release.
---
diff --git a/src/core/ngx_rwlock.c b/src/core/ngx_rwlock.c
index ed2b0f810..e7da8a8ec 100644
--- a/src/core/ngx_rwlock.c
+++ b/src/core/ngx_rwlock.c
@@ -89,22 +89,10 @@ ngx_rwlock_rlock(ngx_atomic_t *lock)
void
ngx_rwlock_unlock(ngx_atomic_t *lock)
{
- ngx_atomic_uint_t readers;
-
- readers = *lock;
-
- if (readers == NGX_RWLOCK_WLOCK) {
+ if (*lock == NGX_RWLOCK_WLOCK) {
(void) ngx_atomic_cmp_set(lock, NGX_RWLOCK_WLOCK, 0);
- return;
- }
-
- for ( ;; ) {
-
- if (ngx_atomic_cmp_set(lock, readers, readers - 1)) {
- return;
- }
-
- readers = *lock;
+ } else {
+ (void) ngx_atomic_fetch_add(lock, -1);
}
}