1class Thread 2 MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new # :nodoc: 3 4 # call-seq: 5 # Thread.exclusive { block } => obj 6 # 7 # Wraps a block in Thread.critical, restoring the original value 8 # upon exit from the critical section, and returns the value of the 9 # block. 10 def self.exclusive 11 MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{ 12 yield 13 } 14 end 15end 16