Marcel Taeumel wrote:
Okay, I disagree. :) Or I need to rephrase the situation here. ;)

I have one process in Pharo that locks the mutex, calls some code and then
comes across another piece of code that wants to lock the *same* mutex again
in the same process, do some stoff, before return to the original call
again. Everything happens in one process (= green thread). As far as I
understood, this is the common "recursive" property of a mutex, which
could/should work. :)

If the Mutex in Pharo does not support recursive locking from within the
same process, then it is more like a binary semaphore, right?

Recursive locking appears to be provided by the following line
   activeProcess == owner ifTrue:[^aBlock value].
in Mutex>>critical:

btw, if you step into your example, you'll see the mutex is implemented using semaphores.
cheers -ben

Okay, this simple "nesting" works in Pharo:

m := Mutex new.
m critical: [
        Morph new.
        m critical: [Morph new]].

But this is not exactly the same setting as in Animations. I need to test it
a little bit more. :)

Best,
Marcel



Reply via email to