Logo ProcessKit API Reference

StreamFullMode Type

How a bounded *streaming* channel behaves once its capacity is reached — the streaming analogue of `OverflowMode`, but with a genuine backpressure option that only makes sense against a live consumer (a buffered one-shot verb has no such consumer to pace, which is why `OutputBufferPolicy` has no equivalent case).

Union cases

Union case Description

Backpressure

Full Usage: Backpressure

Slow the producer down instead of dropping anything: the pump stops draining the OS pipe until the consumer catches up, so the child itself observably blocks writing to a full stdout/stderr pipe. Bounds memory losslessly, at the cost of the child's timing — opt in only when you intend to pace a trusted producer against your consumer (see the deadlock note in [Streaming](../../docs/streaming.md) before using it: a `Command.Timeout` kills the *child* but does not by itself free a writer parked here if you abandon reading — dispose the `RunningProcess` to release it).

DropNewest

Full Usage: DropNewest

"Head" semantics: keep what is already queued and drop the newest incoming item. Lossy but bounded; sets `RunningProcess.DroppedStreamLineCount`.

DropOldest

Full Usage: DropOldest

Ring-buffer / "tail" semantics: drop the oldest queued item to make room for the newest. Lossy but bounded; sets `RunningProcess.DroppedStreamLineCount`.

Error

Full Usage: Error

Fail-loud ceiling: once the cap is reached, fault the stream with `ProcessError.OutputTooLarge` (observed by the consumer as the streaming enumerator throwing, the same fault path a throwing per-line handler already uses).

Instance members

Instance member Description

this.IsBackpressure

Full Usage: this.IsBackpressure

Returns: bool
Returns: bool

this.IsDropNewest

Full Usage: this.IsDropNewest

Returns: bool
Returns: bool

this.IsDropOldest

Full Usage: this.IsDropOldest

Returns: bool
Returns: bool

this.IsError

Full Usage: this.IsError

Returns: bool
Returns: bool

Type something to start searching.