class Concurrent::ReadWriteLock
def release_read_lock
-
(Boolean)
- true if the lock is successfully released
def release_read_lock while true c = @Counter.value if @Counter.compare_and_set(c, c-1) # If one or more writers were waiting, and we were the last reader, wake a writer up if waiting_writer?(c) && running_readers(c) == 1 @WriteLock.signal end break end end true end