Class: RSpec::Support::ReentrantMutex
- Inherits:
-
Object
- Object
- RSpec::Support::ReentrantMutex
- Defined in:
- lib/rspec/support/reentrant_mutex.rb
Overview
Allows a thread to lock out other threads from a critical section of code, while allowing the thread with the lock to reenter that section.
Based on Monitor as of 2.2 - github.com/ruby/ruby/blob/eb7ddaa3a47bf48045d26c72eb0f263a53524ebc/lib/monitor.rb#L9
Depends on Mutex, but Mutex is only available as part of core since 1.9.1:
exists - http://ruby-doc.org/core-1.9.1/Mutex.html
dne - http://ruby-doc.org/core-1.9.0/Mutex.html
Instance Method Summary collapse
-
#initialize ⇒ ReentrantMutex
constructor
A new instance of ReentrantMutex.
- #synchronize ⇒ Object
Constructor Details
#initialize ⇒ ReentrantMutex
Returns a new instance of ReentrantMutex.
17 18 19 20 21 |
# File 'lib/rspec/support/reentrant_mutex.rb', line 17 def initialize @owner = nil @count = 0 @mutex = Mutex.new end |
Instance Method Details
#synchronize ⇒ Object
23 24 25 26 27 28 |
# File 'lib/rspec/support/reentrant_mutex.rb', line 23 def synchronize enter yield ensure exit end |