# File lib/mutex_fix.rb, line 16 def unlock return unless @locked Thread.critical = true @locked = false begin t = @waiting.pop t.wakeup if t rescue ThreadError retry end Thread.critical = false begin t.run if t rescue ThreadError end self end