synchronized (this[.classinfo]) in druntime and phobos
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue May 29 16:22:51 PDT 2012
On 5/29/12 4:17 PM, Alex Rønne Petersen wrote:
> On 30-05-2012 01:10, Andrei Alexandrescu wrote:
>> On 5/29/12 4:06 PM, Alex Rønne Petersen wrote:
>>> Synchronized blocks are good because they
>>> operate on an implicit, hidden, global mutex. You can't screw up with
>>> that.
>>
>> I think there's quite some disconnect here. If there's any anti-pattern
>> in this discussion, it's operating on an implicit, hidden, global mutex.
>> Walter agreed to eliminate that from D, but never got around to it.
>>
>> Andrei
>
> I'd love to hear why you think this design is problematic as opposed to
> one that lets users accidentally expose synchronization issues to
> consumers of their API surface, which is what many people end up doing
> since synchronized (this) or even synchronized (this.classinfo) are
> allowed at all.
>
> (I've seen countless cases of those two horrible abuses of synchronized
> especially from people asking questions on e.g. IRC.)
I think the most egregious example is synchronization by global lock
done in Python and other languages. It has very nice semantics (stop the
world, do something, resume the world), but scales poorly enough to be
universally considered a failure. Quite honest I'm shocked that you're
advocating it.
Andrei
More information about the Digitalmars-d
mailing list