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