From: Edward Diener (eddielee_at_[hidden])
Date: 2003-02-24 16:59:27
"Alexander Terekhov" <terekhov_at_[hidden]> wrote in message
> Ken Hagan wrote:
> > Alexander Terekhov wrote:
> > >
> > > I, for one, believe strongly that "&k" is nothing but
> > >
> > > "static_cast<typeof(k)*>(pthread_getspecific(__k_key));"
> > >
> > > It *isn't* a compile-time constant (just like &errno isn't a compile
> > > time constant).
> > MSVC has no pthread_getspecific(), so I venture to suggest that
> > your belief probably isn't valid for that compiler.
> Uhmm. In return, I venture to suggest that MS-TLS can and shall be
> characterized as ``utterly busted.''
> "If a DLL declares any nonlocal data or object as __declspec(thread),
> it can cause a protection fault if dynamically loaded."
This is well-known by many and has never been hidden by MS. It doesn't mean
__declspec(thread) is busted, it just means that it is limited to only those
cases in which the DLL is not dynamically loaded, which is the vast majority
of cases. Of course to make TLS completely foolproof, one does not use
__declspec(thread) but instead one uses the Win32 TLS API functions instead.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk