Method: Garcon::ReadWriteLock#release_write_lock
- Defined in:
- lib/garcon/task/read_write_lock.rb
#release_write_lock ⇒ Boolean
Release a previously acquired write lock.
219 220 221 222 223 224 225 226 227 228 229 230 231 |
# File 'lib/garcon/task/read_write_lock.rb', line 219 def release_write_lock while(true) c = @counter.value if @counter.compare_and_swap(c,c-RUNNING_WRITER) @reader_mutex.synchronize { @reader_q.broadcast } if waiting_writers(c) > 0 @writer_mutex.synchronize { @writer_q.signal } end break end end true end |