ref: 2b99422480d596ebc26921c87c6bb81a07949f3e
dir: /src/sem.h/
typedef struct Sem Sem; typedef struct QReq QReq; struct Sem { Ref; int id; char* name; int tickets; QReq* reqs; }; struct QReq { QReq* next; Req* r; }; enum { Nsems = 255 }; Sem* newsem(char* name); Req* dequeuereq(Sem* s); int queuedreqs(Sem* s); void closesem(Sem* s); void queuereq(Sem* s, Req* r); extern Sem* sems[Nsems]; extern int nsems;