xref: /aosp_15_r20/external/musl/src/thread/lock_ptc.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <pthread.h>
2*c9945492SAndroid Build Coastguard Worker 
3*c9945492SAndroid Build Coastguard Worker static pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER;
4*c9945492SAndroid Build Coastguard Worker 
__inhibit_ptc()5*c9945492SAndroid Build Coastguard Worker void __inhibit_ptc()
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	pthread_rwlock_wrlock(&lock);
8*c9945492SAndroid Build Coastguard Worker }
9*c9945492SAndroid Build Coastguard Worker 
__acquire_ptc()10*c9945492SAndroid Build Coastguard Worker void __acquire_ptc()
11*c9945492SAndroid Build Coastguard Worker {
12*c9945492SAndroid Build Coastguard Worker 	pthread_rwlock_rdlock(&lock);
13*c9945492SAndroid Build Coastguard Worker }
14*c9945492SAndroid Build Coastguard Worker 
__release_ptc()15*c9945492SAndroid Build Coastguard Worker void __release_ptc()
16*c9945492SAndroid Build Coastguard Worker {
17*c9945492SAndroid Build Coastguard Worker 	pthread_rwlock_unlock(&lock);
18*c9945492SAndroid Build Coastguard Worker }
19