Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (5) — Plan9 3rd Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

FLUSH(5)

NAME

flush − abort a message

SYNOPSIS

Tflush tag[2] oldtag[2]
Rflush tag[2]

DESCRIPTION

When the response to a request is no longer needed, such as when a user interrupts a process doing a read(2), a ­Tflush request is sent to the server to purge the pending response.  The message being flushed is identified by oldtag. The semantics of ­flush depends on messages arriving in order. 

The server must answer the ­flush message immediately.  If it recognizes ­oldtag as the tag of a pending transaction, it should abort any pending response and discard that tag.  In either case, it should respond with an ­Rflush echoing the tag (not oldtag) of the ­Tflush message.  A ­Tflush can never be responded to by an ­Rerror message. 

When the client sends a Tflush, it must wait to receive the corresponding ­Rflush before reusing ­oldtag for subsequent messages.  If a response to the flushed request is received before the Rflush, the transaction is considered to have finished, and should be treated as though it had not been flushed.  If no response is received before the Rflush, the flushed transaction is considered to have been canceled, and should be treated as though it had never been sent. 

Several exceptional conditions are handled correctly by the above specification: sending multiple flushes for a single tag, flushing a Tflush, and flushing an invalid tag. 

Plan 9  —  March 27, 2001

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026