iodine/spoon.ih library contains Linux x86_64 helpers for process creation, thread creation, thread synchronization, and futex-based mutexes. It uses raw Linux syscalls and manages thread stacks and thread-local storage itself.
Process helpers
spoon(path) builds a one-element argument vector containing path and passes a null environment pointer. It does not provide a way to supply additional command-line arguments or a custom environment.
execve failure through a documented error API.
Thread helpers
The spawned threads continue execution from the point of creation. Use
food() to distinguish the main thread from threads created by spawn_spoon.
Mutex helpers
The mutex API uses anint as its lock word:
Low-level wrappers and internal state
The library also defines internal assembly wrappers forclone, atomic exchange, and futex wait/wake operations. Its _sp namespace stores a fixed table for up to 64 tracked threads and the associated stacks, TLS regions, and TID areas.
The source is available in plstd/spoon.plib. This .plib source is documented as iodine/spoon.ih.