mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
6c56dae4b2
* thread.c (rb_mutex_synchronize_m): here. [Bug #4266] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
15 lines
367 B
Ruby
15 lines
367 B
Ruby
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
|