A monitor for every object

Steven Schveighoffer schveiguy at yahoo.com
Mon Feb 7 08:42:52 PST 2011


On Mon, 07 Feb 2011 10:33:29 -0500, Robert Jacques <sandford at jhu.edu>  
wrote:

> On Mon, 07 Feb 2011 08:20:20 -0500, Steven Schveighoffer  
> <schveiguy at yahoo.com> wrote:
>
>> On Fri, 04 Feb 2011 18:29:08 -0500, Sean Kelly <sean at invisibleduck.org>  
>> wrote:
>>
>>> On Feb 4, 2011, at 3:06 PM, Tomek Sowiński wrote:
>>>
>>>> Steven Schveighoffer napisał:
>>>>
>>>>> D also allows you to replace it's monitor with a custom monitor  
>>>>> object
>>>>> (i.e. core.sync.Mutex) so you can have more control over the mutex,  
>>>>> assign
>>>>> the same mutex to multiple objects, use conditions, etc.  It's much  
>>>>> more
>>>>> flexible than Java or C# IMO.
>>>>
>>>> I didn't know, thx. Where is it documented?
>>>
>>> Only in the docs for the Mutex ctor here:
>>>
>>> http://www.digitalmars.com/d/2.0/phobos/core_sync_mutex.html
>>>
>>> By the way, when using Mutex as an object monitor you currently can't  
>>> attach dispose event handlers to the object (ie. via std.signals).   
>>> That functionality is only supported by the default monitor.  I've  
>>> considered changing this, but doing so imposes some weird requirements  
>>> on the creators of an external object monitor, like Mutex.
>>
>> Sean, I could have sworn that mutex can take over multiple objects'  
>> monitors.  This would be highly desirable in a complex structure where  
>> members of an object should use the same mutex for synchronized calls.
>>
>> But looking at the docs once again, it looks like it can only be the  
>> monitor for one object (as the target object is accepted only on  
>> construction).  Is that a limitation we cannot remove?
>>
>> -Steve
>
> Steve, you can always assign to an object's monitor variable manually.  
> But adding this functionality to Mutex's and Object's API would be  
> appreciated.

Sure, Mutex does this already.  What I was simply asking is if it will  
blow up or not :)

-Steve


More information about the Digitalmars-d mailing list