Class: Mutex
Instance Method Summary collapse
-
#initialize ⇒ Mutex
constructor
A new instance of Mutex.
- #lock ⇒ Object
- #locked? ⇒ Boolean
- #owned? ⇒ Boolean
- #synchronize ⇒ Object
- #try_lock ⇒ Object
- #unlock ⇒ Object
Constructor Details
#initialize ⇒ Mutex
Returns a new instance of Mutex
120 121 122 123 124 |
# File 'opal/stdlib/thread.rb', line 120 def initialize # We still keep the @locked state so any logic based on try_lock while # held yields reasonable results. @locked = false end |
Instance Method Details
#lock ⇒ Object
126 127 128 129 130 |
# File 'opal/stdlib/thread.rb', line 126 def lock fail ThreadError, "Deadlock" if @locked @locked = true self end |
#owned? ⇒ Boolean
136 137 138 139 |
# File 'opal/stdlib/thread.rb', line 136 def owned? # Being the only "thread", we implicitly own any locked mutex. @locked end |
#synchronize ⇒ Object
156 157 158 159 160 161 162 163 |
# File 'opal/stdlib/thread.rb', line 156 def synchronize lock begin yield ensure unlock end end |
#try_lock ⇒ Object
141 142 143 144 145 146 147 148 |
# File 'opal/stdlib/thread.rb', line 141 def try_lock if locked? false else lock true end end |
#unlock ⇒ Object
150 151 152 153 154 |
# File 'opal/stdlib/thread.rb', line 150 def unlock fail ThreadError, "Mutex not locked" unless @locked @locked = false self end |