/* BeginSourceFile rwl.h -- from Kleiman-Shah-Smaalders */ 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(); /* EndSourceFile */