typedef struct {
	pthread_mutex_t m; /* read/write monitor lock */
	int rwlock;							
	/* >0=# rdrs, <0=wrtr, 0=none */
	pthread_cond_t readers_ok; /* start waiting readers */
	unsigned int waiting_writers; /* # of waiting writers */
	pthread_cond_t writer_ok; /* start a waiting writer */
} rwl_t;
extern void rwl_init();
extern void rwl_rdlock();
extern void rwl_wrlock();
extern void rwl_unlock();