Light-weight monitor implementation?

Bert Freudenberg bert at
Thu Nov 3 09:32:29 UTC 2005

Am 03.11.2005 um 08:49 schrieb Andreas Raab:

> Hi Folks,
> I was looking for a simple monitor implementation (e.g., a  
> mechanism for mutual exclusion which allows the same process to  
> enter it multiple times) and looked at the implementation of  
> Monitor that is present in 3.9. Much to my surprise, I found that  
> this monitor implementation is a very heavyweight version of what  
> should essentially be three methods, e.g., #enter, #leave, and  
> #critical:. The extra heavy-weight behavior might be useful in  
> certain specific cases but I wonder about its general applicability  
> (personally I find it more confusing than helpful because it hides  
> the nature of a monitor under a lot of extra baggage). I think it  
> would be tremendously useful to do a little refactoring which a)  
> makes a tiny class Monitor and b) makes a heavy-weight EventMonitor  
> which has all the extra stuff (timeout, events) that is now in  
> Monitor.
> What do other people think? Is there any reason for Monitor being  
> such a heavy-weight object by default? Is it necessary that a  
> monitor support all of the extra functionality besides the basic  
> "allow a process to enter it multiple times"?

There is one relatively simple in Seaside: 

Err, wait, that's not quite the code that is in my image - this one  
doesn't even use its timeout inst var? Actual code attached. But  
maybe you like the one above even better :)

- Bert

-------------- next part --------------
A non-text attachment was scrubbed...
Type: application/x-gzip
Size: 568 bytes
Desc: not available
Url :

More information about the Squeak-dev mailing list