Ken Hagan wrote:
> 
> Alexander Terekhov wrote:
> >
> > Uhmm. In return, I venture to suggest that MS-TLS can and shall be
> > characterized as ``utterly busted.''
> 
> Fine, but the OP asked about existing practice and the bugs
> don't change the fact that "&k" can be a template parameter
> if the compiler is willing to thunk its way around the TLS
> implementation under the hood.

Okay. Let's go back. The OP wrote:

:>        extern int k;
:>        template< int* V > class C { ... };
:>        C<&k> ck;
:>
:>But what if k is designated thread-local?  The actual variable 
:>referred to by the address of k will differ among threads.
:>(I'm assuming an implementation where &k results in a link-time 
:>constant whether k is an ordinary or thread-local variable.)
:>
:>In favor of allowing k to be thread-local:
:>Converting a multi-process program to multi-thread is simple.
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Huh?

:>Just declare per-process variables to be thread local. Template and 
:>other usage of such variables remains separate per thread as it was 
:>per process.

"per process" aside, this won't necessarily make the template *thread-
safe*. OTOH, it might actually "break" a fully thread-safe template 
that was written under the assumption that k IS a global variable. I
have yet to see a compelling reason to embrace the MS ``TLS-template''
innovation.

regards,
alexander.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to