[フレーム]

Class: Mutex

Inherits:
Object show all
Defined in:
opal/stdlib/thread.rb

Instance Method Summary collapse

Constructor Details

#initializeMutex

Returns a new instance of Mutex

119
120
121
122
123
# File 'opal/stdlib/thread.rb', line 119
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

#lockObject

Raises:

125
126
127
128
129
# File 'opal/stdlib/thread.rb', line 125
def lock
 raise ThreadError , 'Deadlock' if @locked
 @locked = true
 self
end

#locked?Boolean

Returns:

131
132
133
# File 'opal/stdlib/thread.rb', line 131
def locked?
 @locked
end

#owned?Boolean

Returns:

135
136
137
138
# File 'opal/stdlib/thread.rb', line 135
def owned?
 # Being the only "thread", we implicitly own any locked mutex.
 @locked
end

#synchronizeObject

155
156
157
158
159
160
161
162
# File 'opal/stdlib/thread.rb', line 155
def synchronize
 lock
 begin
 yield
 ensure
 unlock
 end
end

#try_lockObject

140
141
142
143
144
145
146
147
# File 'opal/stdlib/thread.rb', line 140
def try_lock
 if locked?
 false
 else
 lock
 true
 end
end

#unlockObject

Raises:

149
150
151
152
153
# File 'opal/stdlib/thread.rb', line 149
def unlock
 raise ThreadError , 'Mutex not locked' unless @locked
 @locked = false
 self
end

AltStyle によって変換されたページ (->オリジナル) /