ref: a351bcdccdf5a4273bc8dc3360a48fbb8b8aa9ea
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;