xref: /inferno-os/man/2/bufio-chanfill (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
BUFIO-CHANFILL 2
NAME
bufio: chanfill - buffered I/O interface to named channel
SYNOPSIS
.EX include "bufio.m"; chanfill := load ChanFill ChanFill->PATH; init: fn(data: array of byte, fid: int, wc: Sys->Rwrite, r: ref Sys->FileIO, b: Bufio): ref Bufio->Iobuf; fill: fn(b: ref Bufio->Iobuf): int;
DESCRIPTION
ChanFill is an implementation of BufioFill (see bufio (2)) that refills an Iobuf as data is written to a file created by sys-file2chan (2), which is allowed only one writer. Init returns an Iobuf allocated from the Bufio instance b , that when read will return data written to the file by another process. Data , fid and wc are the values in the tuple presented by Sys->file2chan on the first write. Data becomes the initial data for the Iobuf ; init replies to the writer on wc . The other values are saved for use by fill : on later calls to by Bufio to refill the buffer, fill waits for a new write request on fio .write and either fills the buffer or signals end-of-file appropriately.
SEE ALSO
bufio (2)