# Process --- ## Allocator ### Object All objects sizes are rounded up to the next power of two The minimum allocation size is `2 ** 5` and the max is `2 ** 27` ### Executable Memory ### Pooling Each pool is an atomic ring buffer of size aligned to a power of two Every each power of two from the min to max allocation size gets its own ring buffer ### Garbage Collection ## Per Task Queue An atomic linked list to allow any thread to add to any queue but on the owning thread to read from the queue ## Configuration ### `--thread-count=[NUMBER]` Total threads to spawn, default is `$(nproc)` ### `--memory-pool-pow2=[POOL POW],[ENTRIES POW] Set the memory pool of size `2 ** [POOL POW]` to have a total number of entries of `2 ** [ENTRIES POW]`