Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
.TH FLUSH 5
2
.SH NAME
3
flush \- abort a message
4
.SH SYNOPSIS
5
.ta \w'\fLTflush 'u
6
.IR size [4]
7
.B Tflush
8
.IR tag [2]
9
.IR oldtag [2]
10
.br
11
.IR size [4]
12
.B Rflush
13
.IR tag [2]
14
.SH DESCRIPTION
15
When the response to a request is no longer needed, such as when
16
a user interrupts a process doing a
17
.IR read (2),
18
a
19
.B Tflush
20
request is sent to the server to purge the pending response.
21
The message being flushed is identified by
22
.IR oldtag .
23
The semantics of
24
.B flush
25
depends on messages arriving in order.
26
.PP
27
The server should answer the
28
.B flush
29
message immediately.
30
If it recognizes
31
.I oldtag
32
as the tag of a pending transaction, it should abort any pending response
33
and discard that tag.
34
In either case, it should respond with an
35
.B Rflush
36
echoing the
37
.I tag
38
(not
39
.IR oldtag )
40
of the
41
.B Tflush
42
message.
43
A
44
.B Tflush
45
can never be responded to by an
46
.B Rerror
47
message.
48
.PP
49
The server may respond to the pending request before
50
responding to the
51
.BR Tflush .
52
It is possible for a client to send multiple
53
.B Tflush
54
messages for a particular pending request.  Each
55
subsequent
56
.B Tflush
57
must contain as
58
.I oldtag
59
the tag of the pending request (not a previous
60
.BR Tflush ).
61
Should multiple
62
.BR Tflush es
63
be received for a pending request, they must be answered in
64
order.  A
65
.B Rflush
66
for any of the multiple
67
.BR Tflush es
68
implies an answer for all previous ones.  Therefore, should
69
a server receive a request and then multiple flushes for that
70
request, it need respond only to the last flush.
71
.PP
72
When the client sends a 
73
.BR Tflush ,
74
it must wait to receive the corresponding
75
.B Rflush
76
before reusing
77
.I oldtag
78
for subsequent messages.
79
If a response to the flushed request is received before the
80
.BR Rflush ,
81
the client must honor the response
82
as if it had not been flushed,
83
since the completed request may signify a state change in the server.
84
For instance,
85
.B Tcreate
86
may have created a file and
87
.B Twalk
88
may have allocated a fid.
89
If no response is received before the
90
.BR Rflush ,
91
the flushed transaction is considered to have been canceled,
92
and should be treated as though it had never been sent.
93
.PP
94
Several exceptional conditions are handled correctly by the above specification:
95
sending multiple flushes for a single tag,
96
flushing after a transaction is completed,
97
flushing a
98
.BR Tflush ,
99
and flushing an invalid tag.