def _handle_child(child_socket, root_dir, in_dir, out_dir):
create_namespace()
pid = fork()
if pid != 0:
child_socket.close()
waitpid(pid, 0)
exit()
enter_namespace(root_dir, in_dir, out_dir)
socket_file = child_socket.makefile('rwb')
while True:
try:
func = cloudpickle.load(socket_file)
except EOFError:
exit()
try:
ret, err = func(), None
except Exception as e:
ret, err = None, e
data = cloudpickle.dumps((ret, err))
socket_file.write(pack('I', len(data)))
socket_file.write(data)
socket_file.flush()
评论列表
文章目录