provider pthread_probe { probe create(pthread_t* thread, void* start, void* arg); probe join(pthread_t thread) probe join_ret(pthread_t thread, void* thread_return) probe start(void* arg) probe end(void* arg) probe mutex_init(pthread_mutex_t* mutex); probe mutex_destroy(pthread_mutex_t* mutex); probe mutex_acquire(pthread_mutex_t* mutex); probe mutex_release(pthread_mutex_t* mutex); probe mutex_block(pthread_mutex_t* mutex); probe cond_init(pthread_cond_t* cond); probe cond_destroy(pthread_cond_t* cond); probe cond_wait(pthread_cond_t* cond, pthread_mutex_t* mutex); probe cond_wake(pthread_cond_t* cond, pthread_mutex_t* mutex); probe cond_signal(pthread_cond_t* cond); probe cond_broadcast(pthread_cond_t* cond); };