Spawns a new thread which executes function using args and returns a handle to the spawned thread.
config can be used as hints to the platform for how to spawn and execute the function.
The caller must eventually either call join() to wait for the thread to finish and free its resources
or call detach() to excuse the caller from calling join() and have the thread clean up its resources on completion.
pub fn spawn(config: SpawnConfig, comptime function: anytype, args: anytype) SpawnError!Thread
pub fn spawn(config: SpawnConfig, comptime function: anytype, args: anytype) SpawnError!Thread {
if (builtin.single_threaded) {
@compileError("Cannot spawn thread when building in single-threaded mode");
}
const impl = try Impl.spawn(config, function, args);
return Thread{ .impl = impl };
}