66 lines
1.3 KiB
Text
66 lines
1.3 KiB
Text
.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 sent 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)
|