[dmd-concurrency] Smoke test
Walter Bright
walter at digitalmars.com
Fri Jan 8 00:36:30 PST 2010
Sean Kelly wrote:
>
> I feel like I'm not explaining myself very well, but that's the best I can do at the moment. As a related issue, I have a feeling that the following is a bad idea, but I haven't come up with a good explanation for why yet, maybe simply the principle of least surprise?:
>
> class C
> {
> shared int x;
> }
>
> auto c = new C;
> sendRefToAnotherThread( c ); // fails, c is local
> sendToAnotherThread( &c.x ); // succeeds, c.x is shared
>
>
The transitivity of shared doesn't work backwards, only forwards. In
other words, you can have a local pointer to shared, but no shared
pointers to locals.
In yet other words, sharing is transitive, locality is not.
More information about the dmd-concurrency
mailing list