Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

32 lines (29 sloc) 0.663 kb
class Mutex
# call-seq:
# mutex.synchronize { ... }
#
# Obtains a lock, runs the block, and releases the lock when the
# block completes. See the example under Mutex.
def synchronize
self.lock
begin
yield
ensure
self.unlock rescue nil
end
end
end
class Thread
MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new # :nodoc:
# call-seq:
# Thread.exclusive { block } => obj
#
# Wraps a block in Thread.critical, restoring the original value
# upon exit from the critical section, and returns the value of the
# block.
def self.exclusive
MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{
yield
}
end
end
Jump to Line
Something went wrong with that request. Please try again.