use explicit multiprocessing context for creating Pipe in subproc.py (#1102)

This commit is contained in:
maxhuettenrauch 2024-04-19 11:08:53 +02:00 committed by GitHub
parent a043711c10
commit 9c0b3e7292
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,7 +3,7 @@ import multiprocessing
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
@ -149,11 +149,11 @@ class SubprocEnvWorker(EnvWorker):
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()