(remote, parent_remote, env_fn_wrapper)
| 4 | |
| 5 | |
| 6 | def worker(remote, parent_remote, env_fn_wrapper): |
| 7 | parent_remote.close() |
| 8 | env = env_fn_wrapper.x() |
| 9 | while True: |
| 10 | cmd, data = remote.recv() |
| 11 | if cmd == 'step': |
| 12 | ob, reward, done, info = env.step(data) |
| 13 | if done: |
| 14 | ob = env.reset() |
| 15 | remote.send((ob, reward, done, info)) |
| 16 | elif cmd == 'reset': |
| 17 | ob = env.reset() |
| 18 | remote.send(ob) |
| 19 | elif cmd == 'reset_task': |
| 20 | ob = env.reset_task() |
| 21 | remote.send(ob) |
| 22 | elif cmd == 'close': |
| 23 | remote.close() |
| 24 | break |
| 25 | elif cmd == 'get_spaces': |
| 26 | remote.send((env.action_space, env.observation_space)) |
| 27 | elif cmd == 'get_id': |
| 28 | remote.send(env.spec.id) |
| 29 | else: |
| 30 | raise NotImplementedError |
| 31 | |
| 32 | |
| 33 | class CloudpickleWrapper(): |
nothing calls this directly
no test coverage detected