spacepaste

  1.  
  2. function process.spawn(f, env, name, path)
  3. checkArg(1, f, "function")
  4. checkArg(2, env, "table", "nil")
  5. checkArg(3, name, "string", "nil")
  6. checkArg(4, path, "string", "nil")
  7. local process = findProcess()
  8. if process then
  9. env = env or process.env
  10. end
  11. if not path then
  12. path = '<function>'
  13. end
  14. env = setmetatable({}, {__index=env or _G})
  15. local thread = coroutine_create(f)
  16. running[thread] = {
  17. path = path,
  18. command = name,
  19. env = env,
  20. data = setmetatable({}, {__index=process and process.data or nil}),
  21. parent = process,
  22. instances = setmetatable({}, {__mode="v"})
  23. }
  24. return thread
  25. end
  26.