6 /** Example implementation of linux rw lock along with 2 thread test
10 std::atomic<int> lock;
13 static inline bool write_trylock(lock_t *rw) {
15 // return std::atomic_compare_exchange_strong(&rw->lock, &oldvalue, 1);
16 return rw->lock.compare_exchange_strong(oldvalue, 1);
20 static inline void write_unlock(lock_t *rw)
22 atomic_store_explicit(&rw->lock, 0, std::memory_order_release);
29 bool flag=write_trylock(&mylock);
31 write_unlock(&mylock);
42 int main(int argc, char **argv)
48 pthread_create(&t1, 0, a, NULL);
49 pthread_create(&t2, 0, a, NULL);