# Tracing can be disabled at compile-time for higher performance by disabling the `logging` feature (see above, but remove `,logging` from the features.)
# Tracing can be disabled at compile-time for higher performance by disabling the `logging` feature (see above, but remove `,logging` from the features.)
default=["mode-memfile","mode-flags","logging"]
default=["mode-memfile","logging"]
## --- Modes --- ##
## --- Modes --- ##
# Enable all flag options
mode-flags=["exec"]
# Mode: default
# Mode: default
# Use physical-memory backed kernel file-descriptors. (see feature `memfile`.)
# Use physical-memory backed kernel file-descriptors. (see feature `memfile`.)
# Use an in-memory file for storage instead of a byte-buffer.
# Use an in-memory file for storage instead of a byte-buffer.
#
#
# This can draastically improve performance as it allows for the use of `splice()` and `send_file()` syscalls instead of many `read()` and `write()` ones.
# This can draastically improve performance as it allows for the use of `splice()` and `send_file()` syscalls instead of many `read()` and `write()` ones.
//TODO: maybe look into fd SEALing? Maybe we can prevent a consumer process from reading from stdout until we've finished the transfer. The name SEAL sounds like it might have something to do with that?
//TODO: maybe look into fd SEALing? Maybe we can prevent a consumer process from reading from stdout until we've finished the transfer. The name SEAL sounds like it might have something to do with that?
if_trace!(error!("Exiting with non-zero code due to child(s) returning non-zero exit status"));//TODO: A flag to disable this? TODO: Also, a flag to stop printing to stdout so consumers of output can use just `-exec/{}` child process `stdout`s is enabled
if_trace!(error!("Exiting with non-zero code due to child(s) returning non-zero exit status"));//TODO: A runtime flag to disable this? TODO: Also, a flag to stop printing to stdout so consumers of output can use just `-exec/{}` child process `stdout`s is enabled