Condition Mutexes

Steven Schveighoffer schveiguy at yahoo.com
Wed Oct 21 14:25:13 PDT 2009


On Wed, 21 Oct 2009 17:13:48 -0400, Bartosz Milewski  
<bartosz-nospam at relisoft.com> wrote:

> dsimcha Wrote:
>
>> Bartosz, since you're a threading guru, could you please write a simple  
>> test
>> program using core.sync.condition and see if it works, and if not  
>> either file a
>> bug report or let me know?
>
> Conditions were implemented by Sean Kelly, so he's the guru. The file  
> condition.d in core.sync has unit tests, which presumably still run  
> (although I don't know if anybody still runs unit tests in druntime).
>
> If using conditions in D is harder than in Java, than we should rethink  
> their implementation. Every D object has a built-in mutex. Conditon  
> variables should be able to work with this mutex and with synchronized  
> sections out of the box. The most common case should be the easiest. The  
> fact that you are having all those technical problems proves my point.

IIRC, Conditions should be able to use the in-object mutex.  However, I  
think you still need a core.sync.Mutex object.  I think the way it works  
is you initialize the Mutex with an object, and it inserts itself as the  
in-object mutex (hopefully before the on-demand mutex is created).

So indirectly, you can do:

new Condition(new Mutex(this));

Kinda odd, I agree...  This should probably be shortcutted. Sean?

-Steve



More information about the Digitalmars-d mailing list