[nginx] Core: simplify reader lock release.

Pavel Pautov p.pautov at f5.com
Thu Jan 20 23:59:54 UTC 2022


details:   https://hg.nginx.org/nginx/rev/7752d8523066
branches:  
changeset: 7995:7752d8523066
user:      Pavel Pautov <p.pautov at f5.com>
date:      Wed Jan 19 17:37:34 2022 -0800
description:
Core: simplify reader lock release.

diffstat:

 src/core/ngx_rwlock.c |  18 +++---------------
 1 files changed, 3 insertions(+), 15 deletions(-)

diffs (29 lines):

diff -r aeab41dfd260 -r 7752d8523066 src/core/ngx_rwlock.c
--- a/src/core/ngx_rwlock.c	Mon Jan 17 17:05:12 2022 +0300
+++ b/src/core/ngx_rwlock.c	Wed Jan 19 17:37:34 2022 -0800
@@ -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);
     }
 }
 



More information about the nginx-devel mailing list