pub const InitOptions = struct
pub const InitOptions = struct {
/// Affects how many bytes are memory-mapped for threads.
stack_size: usize = std.Thread.SpawnConfig.default_stack_size,
/// Maximum thread pool size (excluding main thread) when dispatching async
/// tasks. Until this limit, calls to `Io.async` when all threads are busy will
/// cause a new thread to be spawned and permanently added to the pool. After
/// this limit, calls to `Io.async` when all threads are busy run the task
/// immediately.
///
/// Defaults to one less than the number of logical CPU cores.
///
/// Protected by `Threaded.mutex` once the I/O instance is already in use. See
/// `setAsyncLimit`.
async_limit: ?Io.Limit = null,
/// Maximum thread pool size (excluding main thread) for dispatching concurrent
/// tasks. Until this limit, calls to `Io.concurrent` will increase the thread
/// pool size.
///
/// After this number, calls to `Io.concurrent` return `error.ConcurrencyUnavailable`.
concurrent_limit: Io.Limit = .unlimited,
/// Affects the following operations:
/// * `processExecutablePath` on OpenBSD and Haiku.
argv0: Argv0 = .empty,
/// Affects the following operations:
/// * `fileIsTty`
/// * `processExecutablePath` on OpenBSD and Haiku (observes "PATH").
/// * `processSpawn`, `processSpawnPath`, `processReplace`, `processReplacePath`
environ: process.Environ = .empty,
/// If set to `true`, `File.MemoryMap` APIs will always take the fallback path.
disable_memory_mapping: bool = false,
}