On 2009-01-29 23:19:25 +0100, Walter Bright <newshou...@digitalmars.com> said:
Sean Kelly wrote:
There are pthread calls for TLS which are implemented for OSX. But
however it works (I haven't looked into it), it likely isn't as
efficient or easy to deal with as the __thread storage class on other
OSes.
It won't be as efficient. But that really doesn't matter at this point
- accessing global variables in a tight loop is a bad idea anyway. TLS
just has to work. It can be optimized later as OSX improves (which it
must, as TLS is going to be a bigger and bigger deal as time goes on).
I don't agree so much with this, TLS can be useful is some occasions
but should be used very sparingly in my opinion, it should be used
mostly for the infrastructure, not by the end user.
TSL is an evolution of global variables and still has many of their
drawbacks, if possible one should pass the variables explicitly, often
with some care, and maybe grouping them into structure it turns out to
be easier than one thinks, and the effort costs little typing.
There are things where TSL can be very useful, and I use it for example
to make the scheduling interface nicer, but I think that with good
design those cases are few...
Encouraging wide use of TSL is bad in my opinion (not that you are
doing it, but one might interpret it like that).
Fawzi