Synchronized classes have no public members

Kapps via Digitalmars-d digitalmars-d at puremagic.com
Tue Oct 13 18:14:34 PDT 2015


On Tuesday, 13 October 2015 at 06:58:28 UTC, Andrei Alexandrescu 
wrote:
> https://github.com/D-Programming-Language/dmd/pull/5188 
> implements a rule defined in TDPL: synchronized classes shall 
> have no public members.
>
> The motivation behind this limitation is that member accesses 
> in synchronized objects should not occur without some handshake 
> occurring. Public members would make that possible and easy.
>
> Walter and I are on board with this change. However, it is a 
> breaking change so we want to gather a level of community 
> support before we push the button.
>
>
> Thanks,
>
> Andrei

Ignoring the issue of whether synchronized should actually exist, 
this makes sense to me. Any class that expects to be thread-safe 
should not allow public access to fields as that's inherently not 
thread-safe. Code breakage would exist, but if the user really 
wants to maintain the same logic, they could just use @property 
in the vast majority of cases.


More information about the Digitalmars-d mailing list