Method: Arrow::Session::Lock#with_read_lock

Defined in:
lib/arrow/session/lock.rb

#with_read_lock(blocking = true) ⇒ Object

Execute the given block after obtaining a read lock, and give up the lock when the block returns. If blocking is false, will raise an Errno::EAGAIN error without calling the block if the lock cannot be immediately established.



120
121
122
123
124
125
126
127
# File 'lib/arrow/session/lock.rb', line 120

def with_read_lock( blocking=true )
  begin
    self.read_lock( blocking ) or raise Errno::EAGAIN
    yield
  ensure
    self.release_read_lock
  end
end