43 return pthread_key_create(&
my_key, dtor);
47 T
get() {
return (T)pthread_getspecific(
my_key); }
51 #if !__TBB_WIN8UI_SUPPORT 53 tls_key_t tmp = TlsAlloc();
54 if( tmp==TLS_OUT_OF_INDEXES )
55 return TLS_OUT_OF_INDEXES;
61 T
get() {
return (T)TlsGetValue(
my_key); }
64 tls_key_t tmp = FlsAlloc(NULL);
65 if( tmp== (DWORD)0xFFFFFFFF )
66 return (DWORD)0xFFFFFFFF;
72 T
get() {
return (T)FlsGetValue(
my_key); }
85 tls() { base::create(); }
86 ~tls() { base::destroy(); }
88 operator T() {
return base::get(); }
95 if (ptr)
delete (T*)ptr;
98 T* result = base::get();
108 base::create( internal_dtor );
115 operator T*() {
return internal_get(); }
Basic cross-platform wrapper class for TLS operations.
void(* tls_dtor_t)(void *)
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
More advanced TLS support template class.
static void internal_dtor(void *ptr)