# HG changeset patch # User Piotr Sikora <piotrsik...@google.com> # Date 1471265530 25200 # Mon Aug 15 05:52:10 2016 -0700 # Node ID 2f2ec92c3af93c11e195fb6d805df57518fede7c # Parent c131f20c9562387f94a268440594c288725d3ba8 Core: use ngx_trylock() where possible.
It makes code much more readable. No binary changes. Signed-off-by: Piotr Sikora <piotrsik...@google.com> diff -r c131f20c9562 -r 2f2ec92c3af9 src/core/ngx_rwlock.c --- a/src/core/ngx_rwlock.c +++ b/src/core/ngx_rwlock.c @@ -23,7 +23,7 @@ ngx_rwlock_wlock(ngx_atomic_t *lock) for ( ;; ) { - if (*lock == 0 && ngx_atomic_cmp_set(lock, 0, NGX_RWLOCK_WLOCK)) { + if (ngx_trylock(lock, NGX_RWLOCK_WLOCK)) { return; } @@ -35,9 +35,7 @@ ngx_rwlock_wlock(ngx_atomic_t *lock) ngx_cpu_pause(); } - if (*lock == 0 - && ngx_atomic_cmp_set(lock, 0, NGX_RWLOCK_WLOCK)) - { + if (ngx_trylock(lock, NGX_RWLOCK_WLOCK)) { return; } } diff -r c131f20c9562 -r 2f2ec92c3af9 src/core/ngx_shmtx.c --- a/src/core/ngx_shmtx.c +++ b/src/core/ngx_shmtx.c @@ -62,7 +62,7 @@ ngx_shmtx_destroy(ngx_shmtx_t *mtx) ngx_uint_t ngx_shmtx_trylock(ngx_shmtx_t *mtx) { - return (*mtx->lock == 0 && ngx_atomic_cmp_set(mtx->lock, 0, ngx_pid)); + return ngx_trylock(mtx->lock, ngx_pid); } @@ -75,7 +75,7 @@ ngx_shmtx_lock(ngx_shmtx_t *mtx) for ( ;; ) { - if (*mtx->lock == 0 && ngx_atomic_cmp_set(mtx->lock, 0, ngx_pid)) { + if (ngx_trylock(mtx->lock, ngx_pid)) { return; } @@ -87,9 +87,7 @@ ngx_shmtx_lock(ngx_shmtx_t *mtx) ngx_cpu_pause(); } - if (*mtx->lock == 0 - && ngx_atomic_cmp_set(mtx->lock, 0, ngx_pid)) - { + if (ngx_trylock(mtx->lock, ngx_pid)) { return; } } @@ -100,7 +98,7 @@ ngx_shmtx_lock(ngx_shmtx_t *mtx) if (mtx->semaphore) { (void) ngx_atomic_fetch_add(mtx->wait, 1); - if (*mtx->lock == 0 && ngx_atomic_cmp_set(mtx->lock, 0, ngx_pid)) { + if (ngx_trylock(mtx->lock, ngx_pid)) { (void) ngx_atomic_fetch_add(mtx->wait, -1); return; } diff -r c131f20c9562 -r 2f2ec92c3af9 src/core/ngx_spinlock.c --- a/src/core/ngx_spinlock.c +++ b/src/core/ngx_spinlock.c @@ -19,7 +19,7 @@ ngx_spinlock(ngx_atomic_t *lock, ngx_ato for ( ;; ) { - if (*lock == 0 && ngx_atomic_cmp_set(lock, 0, value)) { + if (ngx_trylock(lock, value)) { return; } @@ -31,7 +31,7 @@ ngx_spinlock(ngx_atomic_t *lock, ngx_ato ngx_cpu_pause(); } - if (*lock == 0 && ngx_atomic_cmp_set(lock, 0, value)) { + if (ngx_trylock(lock, value)) { return; } } diff -r c131f20c9562 -r 2f2ec92c3af9 src/core/ngx_times.c --- a/src/core/ngx_times.c +++ b/src/core/ngx_times.c @@ -84,7 +84,7 @@ ngx_time_update(void) ngx_time_t *tp; struct timeval tv; - if (!ngx_trylock(&ngx_time_lock)) { + if (!ngx_trylock(&ngx_time_lock, 1)) { return; } @@ -200,7 +200,7 @@ ngx_time_sigsafe_update(void) ngx_time_t *tp; struct timeval tv; - if (!ngx_trylock(&ngx_time_lock)) { + if (!ngx_trylock(&ngx_time_lock, 1)) { return; } diff -r c131f20c9562 -r 2f2ec92c3af9 src/os/unix/ngx_atomic.h --- a/src/os/unix/ngx_atomic.h +++ b/src/os/unix/ngx_atomic.h @@ -306,7 +306,9 @@ ngx_atomic_fetch_add(ngx_atomic_t *value void ngx_spinlock(ngx_atomic_t *lock, ngx_atomic_int_t value, ngx_uint_t spin); -#define ngx_trylock(lock) (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, 1)) +#define ngx_trylock(lock, value) \ + (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, value)) + #define ngx_unlock(lock) *(lock) = 0 diff -r c131f20c9562 -r 2f2ec92c3af9 src/os/win32/ngx_atomic.h --- a/src/os/win32/ngx_atomic.h +++ b/src/os/win32/ngx_atomic.h @@ -62,7 +62,9 @@ typedef volatile ngx_atomic_uint_t ngx_ void ngx_spinlock(ngx_atomic_t *lock, ngx_atomic_int_t value, ngx_uint_t spin); -#define ngx_trylock(lock) (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, 1)) +#define ngx_trylock(lock, value) \ + (*(lock) == 0 && ngx_atomic_cmp_set(lock, 0, value)) + #define ngx_unlock(lock) *(lock) = 0 _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel