1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include <pthread.h> static pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER; void __inhibit_ptc() { pthread_rwlock_wrlock(&lock); } void __acquire_ptc() { pthread_rwlock_rdlock(&lock); } void __release_ptc() { pthread_rwlock_unlock(&lock); }