Data pipes:
Primitives can use data pipes to share data within a pipe section.
To make things simple, data pipes look like files with names that start with an underscore. Examples:
_wave _waveb _out _mypipe
Pipes can be treated as files by most primitives and intrinsics. They can be:
STATUS
ed
LIST
ed
PLOT
ed
Each pipe has one writer but can have multiple readers.
Pipes allow the output of one primitive to be passed into another primitive.
Synchronous data flow.
(Default)
No lost data!
What if the writer to the pipe is faster than the reader?
The primitive writing to the pipe will be paused, as needed, to allow the reader to catch up.
If this is a frequent problem, primitives are available to "thin" the data down to a reasonable rate.
Asynchronous data flow.
(Optional)
Used where data loss is not a problem (sacrifices completeness for speed).
Use of asynchronous pipes is rare and will not be covered in this module.