How write a synchronized class

Hello

How do to write a synchronized class like in java for Ruby

I try with a Mutex but if a method call another method of the same
instance I obtain a Deadlock.

Thanks
Guillaume

On Thu, May 7, 2009 at 6:38 AM, Guillaume dorchies
[email protected] wrote:

Hello

How do to write a synchronized class like in java for Ruby

I try with a Mutex but if a method call another method of the same
instance I obtain a Deadlock.

I wrote a reentrant mutex class at one point in time …

Give it a shot and see if it fixes your deadlock issue.

Blessings,
TwP

Thank you It’s exactly that I need

2009/5/7 Tim P. [email protected]:

I wrote a reentrant mutex class at one point in time …

reentrant_mutex.rb · GitHub

Give it a shot and see if it fixes your deadlock issue.

Sorry, but you could have saved yourself the effort because it’s part
of the standard library:

17:45:59 $ ruby19 -r monitor -e ‘m=Monitor.new;m.synchronize {
m.synchronize { p 1 } }’
1
17:46:05 $ ruby19 -r thread -e ‘m=Mutex.new;m.synchronize {
m.synchronize { p 1 } }’
internal:prelude:6:in lock': deadlock; recursive locking (ThreadError) from <internal:prelude>:6:in synchronize’
from -e:1:in block in <main>' from <internal:prelude>:8:in synchronize’
from -e:1:in `’
17:46:17 $ ruby19 -r monitor -e ‘m=Monitor.new;m.synchronize {
m.synchronize { p 1 } }’
1
17:46:23 $

Kind regards

robert