synchronized (this[.classinfo]) in druntime and phobos

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed May 30 08:46:54 PDT 2012


On 5/30/12 2:34 AM, deadalnix wrote:
> Le 29/05/2012 23:33, Andrei Alexandrescu a écrit :
>> On 5/29/12 1:37 AM, deadalnix wrote:
>>> I would say that breaking things here, with the right deprecation
>>> process, is the way to go.
>>
>> So what should we use for mutex-based synchronization if we deprecate
>> synchronized classes?
>>
>> Andrei
>
> I think something similar to range design here is the way to go.
>
> It is easy to define something like
>
> template isLockable(T) {
> enum isLockable = isShared!T && is(typeof(T.init.lock())) &&
> is(typeof(T.init.release()));
> }
>
> And allow locking only if(isLockable!Type) .
>
> Now we can create SyncObject or any structure we want. The point is that
> we lock explicit stuff.

But in this design anyone can lock such an object, which was something 
you advocated against.

Andrei


More information about the Digitalmars-d mailing list