On Saturday, 3 January 2015 at 13:33:21 UTC, Ola Fosheim Grøstad
wrote:
On Saturday, 3 January 2015 at 12:17:52 UTC, ketmar via
Digitalmars-d-learn wrote:
why should it? thread locals are... well, local for each
thread. you
can't access local of different thread without resorting to
low-level
assembly and OS dependent tricks.
Of course you can, anything that is reachable through any chain
of pointers/references is effectively "shared", not only the
object you explicitly "share".
So when you cast away "shared" then call a function and that is
safe in itself, you don't know what happens when someone
modifies some function deep down in the call chain later on and
access some private pointer chain and possibly retain a pointer
to it.
The alternative is to put "shared" on all parameters in
libraries or avoid using libraries...
I think you're talking cross-purposes. thread-local as in TLS
v.s. thread-local as in not-shared.