function Scheduler.Spawn(z,...)assert(t.callback(z))local x=coroutine.create(Call)return Finish(x,coroutine.resume(x,z,...))end
--[[**
	Runs the specified function in a separate thread, without yielding the current thread. Unlike spawn, it doesn't have a delay and doesn't obscure errors like spawn or coroutines do. Also allows passing arguments like coroutines do.

	@param [t:callback] Function The function you are executing.
	@param [variant] ... The optional arguments you can pass that the function will execute with.
	@returns [void]
**--]]
function Scheduler.Spawn(Function, ...)
	assert(t.callback(Function))
	local Thread = coroutine.create(Call)
	return Finish(Thread, coroutine.resume(Thread, Function, ...))
end
