From: "Sandor Szücs" Date: 2009-05-09T21:32:20+09:00 Subject: Re: Thread and Mutex in Ruby 1.8.7 On 05.05.2009, at 14:35, Guillaume Gdo wrote: > mutex=Mutex.new > mutex.synchronize do > mutex.synchronize do > puts "A" > puts "B" > end > end Mutex is not reentrant. irb> m=Mutex.new irb> m.synchronize do irb> puts "foo" irb> m.synchronize do irb> puts "bar" irb> end irb> end foo ThreadError: thread 0x341ac tried to join itself from (irb):4:in `synchronize' from (irb):4 from (irb):2:in `synchronize' from (irb):2 > Nevertheless my thread have a lock on the mutex. How to reuse it ? Use Monitor instead of Mutex. irb> m=Monitor.new irb> m.synchronize do irb> puts "foo" irb> m.synchronize do irb> puts "reentrant" irb> end irb> end foo reentrant hth. Sandor Szücs --