On Wednesday, 17 October 2018 at 13:25:28 UTC, Steven Schveighoffer wrote:
On 10/16/18 8:26 PM, Manu wrote:
On Tue, Oct 16, 2018 at 2:20 PM Steven Schveighoffer via Digitalmars-d
<digitalmars-d@puremagic.com> wrote:
There is in fact, no difference between:

int *p;
shared int *p2 = p;
int *p3 = cast(int*)p2;

Totally illegal!! You casted away shared. That's as bad as casting away const.

But if you can't do anything with shared data, how do you use it?


and this:

int *p;
shared int *p2 = p;
int *p3 = p;

There's nothing wrong with this... I don't understand the point?

It's identical to the top one. You now have a new unshared reference to shared data. This is done WITHOUT any agreed-upon synchronization.

It isn't, you typo'd it (I originally missed it too).
int *p3 = cast(int*)p2;

vs

int *p3 = p;

Reply via email to