diff --git a/sys/man/2/9pqueue b/sys/man/2/9pqueue new file mode 100644 index 000000000..5cf6bb269 --- /dev/null +++ b/sys/man/2/9pqueue @@ -0,0 +1,61 @@ +.TH 9PQUEUE 2 +.SH NAME +Reqqueue, +reqqueuecreate, +reqqueuepush, +reqqueueflush \- defered processing of 9P requests +.SH SYNOPSIS +.ft L +.nf +#include +#include +#include +#include +#include <9p.h> +.fi +.PP +.ft L +.nf +.ta \w'\fLFile 'u +struct Reqqueue +{ + \fI...\fP +}; +.fi +.PP +.ft L +.nf +.ta \w'\fLReaddir* 'u +4n +4n +Reqqueue* reqqueuecreate(void); +void reqqueuepush(Reqqueue *q, Req *r, void (*f)(Req *)); +void reqqueueflush(Reqqueue *q, Req *r); +.fi +.SH DESCRIPTION +.I Reqqueue +provides routines for defered processing of 9p request in +multithreaded 9p servers. +.PP +The +.I reqqueuecreate +function spawns a process for handling requests returning +a pointer to the +.I Reqqueue +structure allocated. +.PP +To schedule a request to be processed on a queue, +.I reqqueuepush +is called with request +.I r +and its handler function +.IR f . +.PP +A previously submited request can be flushed from a queue +by +.I reqqueueflush +which will reply the request immidiately when processing has +not started. If processing has been started, the process +will be interrupted. +.SH SOURCE +.B /sys/src/lib9p/queue.c +.SH SEE ALSO +.IR 9p (2)