13#ifdef HAVE_THREAD_LOCAL_STORAGE
14#define THREAD_LOCAL_STORAGE_KEYWORD HAVE_THREAD_LOCAL_STORAGE
16#define THREAD_LOCAL_STORAGE_KEYWORD
19#if defined(ANY_THREAD_GETS_SIGNAL) && !defined(_AIX)
20#error "lookup_and_set_thread_symbols and _papi_hwi_broadcast_signal have only been tested on AIX"
23typedef struct _ThreadInfo
25 unsigned long int tid;
47#if defined(HAVE_THREAD_LOCAL_STORAGE)
73 THRDBG(
"Lock %d\n", lck );
76 THRDBG(
"Skipped lock %d\n", lck );
87 THRDBG(
"Unlock %d\n", lck );
90 THRDBG(
"Skipped unlock %d\n", lck );
100 unsigned long int tid;
105#ifdef HAVE_THREAD_LOCAL_STORAGE
110 THRDBG(
"Threads not initialized, returning master thread at %p\n",
115 tid = ( *_papi_hwi_thread_id_fn ) ( );
121 THRDBG(
"Threads initialized, looking for thread %#lx\n", tid );
126 while (
tmp != NULL ) {
127 THRDBG(
"Examining thread tid %#lx at %p\n",
tmp->tid,
tmp );
128 if (
tmp->tid == tid )
139 THRDBG(
"Found thread %ld at %p\n", tid,
tmp );
141 THRDBG(
"Did not find tid %ld\n", tid );
#define _papi_hwd_unlock(lck)
#define _papi_hwd_lock(lck)
#define THRDBG(format, args...)
unsigned long int allocator_tid
EventSetInfo_t ** running_eventset
EventSetInfo_t * from_esi
int tls_papi_event_code_changed
struct _ThreadInfo * next
unsigned int tls_papi_event_code
THREAD_LOCAL_STORAGE_KEYWORD ThreadInfo_t * _papi_hwi_my_thread
unsigned long int(* _papi_hwi_thread_id_fn)(void)
int _papi_hwi_set_thread_id_fn(unsigned long int(*id_fn)(void))
int _papi_hwi_init_global_threads(void)
void _papi_hwi_shutdown_the_thread_list(void)
inline_static int _papi_hwi_lookup_or_create_thread(ThreadInfo_t **here, int tid)
inline_static ThreadInfo_t * _papi_hwi_lookup_thread(int custom_tid)
int _papi_hwi_initialize_thread(ThreadInfo_t **dest, int tid)
unsigned long _papi_gettid(void)
int(* _papi_hwi_thread_kill_fn)(int, int)
unsigned long _papi_getpid(void)
inline_static int _papi_hwi_lock(int lck)
int _papi_hwi_broadcast_signal(unsigned int mytid)
int _papi_hwi_gather_all_thrspec_data(int tag, PAPI_all_thr_spec_t *where)
#define THREAD_LOCAL_STORAGE_KEYWORD
int _papi_hwi_get_thr_context(void **)
int _papi_hwi_shutdown_thread(ThreadInfo_t *thread, int force)
void _papi_hwi_cleanup_thread_list(void)
volatile ThreadInfo_t * _papi_hwi_thread_head
inline_static int _papi_hwi_unlock(int lck)
int _papi_hwi_shutdown_global_threads(void)
ThreadInfo_t * _papi_hwi_lookup_in_thread_list()
int _papi_hwi_insert_in_thread_list(ThreadInfo_t *ptr)