- function process.spawn(f, env, name, path)
- checkArg(1, f, "function")
- checkArg(2, env, "table", "nil")
- checkArg(3, name, "string", "nil")
- checkArg(4, path, "string", "nil")
- local process = findProcess()
- if process then
- env = env or process.env
- end
- if not path then
- path = '<function>'
- end
- env = setmetatable({}, {__index=env or _G})
- local thread = coroutine_create(f)
- running[thread] = {
- path = path,
- command = name,
- env = env,
- data = setmetatable({}, {__index=process and process.data or nil}),
- parent = process,
- instances = setmetatable({}, {__mode="v"})
- }
- return thread
- end