silk/native_process
Profiles: aarch64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu.
Source-owned native process resources and per-invocation capture policy.
Details
Each invocation owns its descriptors, staged request bytes and child. Recoverable failures release descriptors and resolve the child before propagating the original error.
Gotchas
Foreign calls are blocking. Fatal traps do not promise cleanup or child termination.
Import as NativeProcess with import silk.native_process { NativeProcess }.
Public declarations: 1.
NativeProcess
pub struct NativeProcessBlocking native process execution with per-call owned resources and captures.
Associated function NativeProcess.execute
pub effect<'life0> fn execute<'life0>(request: &'life0 silk/child_process.ProcessRequest) -> ProcessOutcome ! ProcessError | OutOfMemoryError ? &mut AllocatorStages a request, starts its child and captures both streams to completion.
Details
Arguments and environment are NUL-separated byte entries. Program and cwd contain no NUL; an empty cwd preserves the parent directory. The child receives EOF on stdin. Startup errors are distinct from nonzero exits and signals. Every returned capture owns its bytes.
Gotchas
Calls block. Recoverable failure after spawning terminates and reaps the owned child before propagation. Fatal traps have no cleanup promise. The host must not reap this owned child.