코드 : rw-lock.c
#include
#include
#include
#include "common_threads.h"
void *reader(void *arg);
void *writer(void *arg);
typedef struct _rwlock_t {
sem_t writelock;
sem_t mutex;
int AR; // number of Active Readers
} rwlock_t;
void rwlock_init(rwlock_t *rw) {
rw->AR = 0;
Sem_init(&rw->mutex, 1);
Sem_init(&rw->writelock, 1);
}