116 int tid = monitor_get_thread_num();
183 TD_GET(inside_dlfcn) =
true;
197 TMSG(LOADMAP,
"dlopen: handle = %p, name = %s", handle, module_name);
204 TD_GET(inside_dlfcn) =
false;
216 TD_GET(inside_dlfcn) =
true;
229 TMSG(LOADMAP,
"dlclose: handle = %p", handle);
232 TD_GET(inside_dlfcn) =
false;
long hpcrun_dlopen_pending(void)
void hpcrun_dlopen_read_unlock(void)
#define atomic_fetch_add_explicit(object, operand, order)
#define ATOMIC_VAR_INIT(value)
static void spinlock_unlock(spinlock_t *l)
static volatile long dlopen_num_writers
void hpcrun_pre_dlopen(const char *path, int flags)
void fnbounds_map_open_dsos()
#define atomic_load_explicit(object, order)
static int dlopen_writer_tid
void fnbounds_unmap_closed_dsos()
int hpcrun_dlopen_read_lock(void)
static void hpcrun_dlopen_write_unlock(void)
void hpcrun_post_dlclose(void *handle, int ret)
static atomic_long dlopen_num_readers
static void hpcrun_dlopen_downgrade_lock(void)
static void spinlock_lock(spinlock_t *l)
static spinlock_t dlopen_lock
static void hpcrun_dlopen_write_lock(void)
void hpcrun_dlopen(const char *module_name, int flags, void *handle)
#define SPINLOCK_UNLOCKED
static atomic_long num_dlopen_pending
void hpcrun_dlclose(void *handle)