From b6f021d6cb83b7fdc08d2acb13394696a721ad24 Mon Sep 17 00:00:00 2001 From: Maximilian Huettenrauch Date: Mon, 8 Apr 2024 15:11:22 +0200 Subject: [PATCH] use explicit multiprocessing context for creating Pipe in subproc.py --- tianshou/env/worker/subproc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tianshou/env/worker/subproc.py b/tianshou/env/worker/subproc.py index ab84ac087..918b49255 100644 --- a/tianshou/env/worker/subproc.py +++ b/tianshou/env/worker/subproc.py @@ -3,7 +3,7 @@ import time from collections import OrderedDict from collections.abc import Callable -from multiprocessing import Pipe, connection +from multiprocessing import connection from multiprocessing.context import BaseContext from typing import Any, Literal @@ -148,11 +148,11 @@ def __init__( share_memory: bool = False, context: BaseContext | Literal["fork", "spawn"] | None = None, ) -> None: - self.parent_remote, self.child_remote = Pipe() - self.share_memory = share_memory - self.buffer: dict | tuple | ShArray | None = None if not isinstance(context, BaseContext): context = multiprocessing.get_context(context) + self.parent_remote, self.child_remote = context.Pipe() + self.share_memory = share_memory + self.buffer: dict | tuple | ShArray | None = None assert hasattr(context, "Process") # for mypy if self.share_memory: dummy = env_fn()