Class: RemoteService::Util::Lock
- Inherits:
-
Object
- Object
- RemoteService::Util::Lock
- Defined in:
- lib/remote_service/util/lock.rb
Instance Method Summary collapse
-
#initialize(timeout = 0) ⇒ Lock
constructor
A new instance of Lock.
- #unlock(*return_value) ⇒ Object
- #wait ⇒ Object
Constructor Details
#initialize(timeout = 0) ⇒ Lock
Returns a new instance of Lock.
6 7 8 9 10 |
# File 'lib/remote_service/util/lock.rb', line 6 def initialize(timeout=0) @mutex = Mutex.new @condition = ConditionVariable.new @timeout = timeout end |
Instance Method Details
#unlock(*return_value) ⇒ Object
12 13 14 15 |
# File 'lib/remote_service/util/lock.rb', line 12 def unlock(*return_value) @return_value = *return_value @mutex.synchronize{ @condition.signal } end |
#wait ⇒ Object
17 18 19 20 21 22 |
# File 'lib/remote_service/util/lock.rb', line 17 def wait Timeout.timeout(@timeout) do @mutex.synchronize{ @condition.wait(@mutex) } @return_value end end |