ref: 2cdf1a3c795ff86c720b54e15b696d5e678238b1
dir: /sys/man/2/9pqueue/
.TH 9PQUEUE 2 .SH NAME Reqqueue, reqqueuecreate, reqqueuepush, reqqueueflush \- deferred processing of 9P requests .SH SYNOPSIS .ft L .nf #include <u.h> #include <libc.h> #include <fcall.h> #include <thread.h> #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); void reqqueuefree(Reqqueue *q); .fi .SH DESCRIPTION .I Reqqueue provides routines for deferred 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 submitted request can be flushed from a queue by .I reqqueueflush which will remove the request immediately if processing has not started. If processing has been started, the process will be interrupted. .PP .I Reqqueuefree frees a queue. No new requests should be send to the queue and it will be freed once all requests in it have been processed. .SH SOURCE .B /sys/src/lib9p/queue.c .SH SEE ALSO .IR 9p (2)