From: Ken Hagan (K.Hagan_at_[hidden])
Date: 2003-02-26 04:47:57
Gabriel Dos Reis wrote:
> There is what that particular implementation does with its extensions
> and there are various mulit-threading models, what the standard
> language is defined to be and ways to extend it to support
> multi-thread and thread
> local storage. In that regard, bugs in either the design or the
> implementation don't count as arguments for not being cautious about
> what that implementation does.
> That may sound obvious but I feel that need to be stated.
I confess I had to re-read it several times to get any inkling of
your meaning, so I wouldn't call it obvious.
In the context of the OP wanting to know what existing practice
was, I'll try another summary.
1 MSVC allows the template instantiation.
2 This is something which can be achieved on top of any form of TLS.
3 No-one has presented a compelling reason to allow it, not
least because a function pointer allows much the same effect.
4 Some have expressed doubts as to whether this existing practice
is something to follow.
5 Somewhat off to one side, boost threads has identified design
problems which make it hard to clean up TLS data and Microsoft
document that __declspec(thread) is unusable for dynamically
I take you remark to be, in effect, "Given 5, 1 and 2 don't count
as an argument against 4." in which case I am happy to concur, not
least because 3 means it doesn't much matter.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk