Oberon || Library || Module Index || Search Engine || Definition || Module


Ulm's Oberon Library:
PipeWriters


NAME

PipeWriters - non-blocking write to a pipeline

SYNOPSIS

PROCEDURE Spawn(VAR s: Streams.Stream; pipe: Streams.Stream);

DESCRIPTION

PipeWriters provides a Streams implementation that accepts any amount of write operations without blocking and buffers the output until the pipe is ready to accept it. This allows to avoid deadlocks in cases where a consumer would be suspended because its input is not consumed.

This module preserves the output packages as long as their size does not exceed the internal buffer size. StreamConditions is supported.

Spawn creates a task that accepts without blocking all the output written to s and buffers it until pipe is ready to accept it. This task will run until s is closed.

DIAGNOSTICS

Error events are forwarded from pipe to s.

SEE ALSO

PipeReaders
a similar module for the input side
UnixPipes
create pipelines to other processes

Edited by: borchert, last change: 2006/08/10, revision: 1.1, converted to HTML: 2006/08/10

Oberon || Library || Module Index || Search Engine || Definition || Module