6 /** Example implementation of linux rw lock along with 2 thread test
13 static inline bool write_trylock(lock_t *rw) {
15 return atomic_compare_exchange_strong(&rw->lock, &oldvalue, 1);
19 static inline void write_unlock(lock_t *rw)
21 atomic_store(&rw->lock, 0);
28 bool flag=write_trylock(&mylock);
30 write_unlock(&mylock);
34 static void a(void *obj)
37 for(i=0;i<PROBLEMSIZE;i++)
41 int user_main(int argc, char **argv)
44 atomic_init(&mylock.lock, 0);
47 thrd_create(&t1, (thrd_start_t)&a, NULL);
48 thrd_create(&t2, (thrd_start_t)&a, NULL);