39 return pthread_key_create(&
my_key, dtor);
43 T
get() {
return (T)pthread_getspecific(
my_key); }
47 #if !__TBB_WIN8UI_SUPPORT
50 if( tmp==TLS_OUT_OF_INDEXES )
51 return TLS_OUT_OF_INDEXES;
61 if( tmp== (DWORD)0xFFFFFFFF )
62 return (DWORD)0xFFFFFFFF;
66 int destroy() { FlsFree(my_key); my_key=0;
return 0; }
67 void set( T
value ) { FlsSetValue(my_key, (LPVOID)
value); }
68 T get() {
return (T)FlsGetValue(my_key); }
81 tls() { base::create(); }
82 ~tls() { base::destroy(); }
84 operator T() {
return base::get(); }
91 if (ptr)
delete (T*)ptr;
94 T* result = base::get();
104 base::create( internal_dtor );
111 operator T*() {
return internal_get(); }