Class: PriorityMutex
- Inherits:
-
Object
- Object
- PriorityMutex
- Defined in:
- lib/priority_mutex.rb
Defined Under Namespace
Classes: Waiter
Instance Method Summary collapse
-
#initialize ⇒ PriorityMutex
constructor
A new instance of PriorityMutex.
- #locked? ⇒ Boolean
- #synchronize(priority = 0) ⇒ Object
Constructor Details
#initialize ⇒ PriorityMutex
Returns a new instance of PriorityMutex.
35 36 37 38 39 |
# File 'lib/priority_mutex.rb', line 35 def initialize @pq = PQueue.new @pq_mutex = Mutex.new @resource_active = false end |
Instance Method Details
#locked? ⇒ Boolean
47 48 49 |
# File 'lib/priority_mutex.rb', line 47 def locked? @resource_active || @pq.size > 0 end |
#synchronize(priority = 0) ⇒ Object
41 42 43 44 45 |
# File 'lib/priority_mutex.rb', line 41 def synchronize(priority = 0) wait_for_resource_if_necessary(priority) yield release_resource end |