From 5efee14582907007b29928e4cd16f63102d3454a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Thu, 6 Sep 2012 18:55:41 +0800 Subject: [PATCH] bugfix: rwlock --- skynet-src/rwlock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skynet-src/rwlock.h b/skynet-src/rwlock.h index 45fe02ac..46357764 100644 --- a/skynet-src/rwlock.h +++ b/skynet-src/rwlock.h @@ -29,7 +29,7 @@ rwlock_rlock(struct rwlock *lock) { static inline void rwlock_wlock(struct rwlock *lock) { - __sync_lock_test_and_set(&lock->write,1); + while (__sync_lock_test_and_set(&lock->write,1)) {} while(lock->read) { __sync_synchronize(); }