
28 Oct
2009
28 Oct
'09
1:40 a.m.
In VC++ and GCC a user creates global TLS like this: VC++ __declspec( thread ) int tls_1; GCC __thread int tls_2; But using the boost library boost::thread_specific_ptr< int > tls_3; doesn't provide an initialized global variable as one would expect from thread-local-storage. Using tls_3 crashes the program if it's not pre-initialized to some object. The implication is that every time a new thread is created, it needs to first instantiate all global TLS objects. Am I not understanding the intentions of this class? Is there a proper or intended way of using this class? I couldn't find any example code in the boost archives. Thanks, -Sid