1 file changed, 9 insertions(+)
src/twisted/internet/process.py | 9 +++++++++
modified src/twisted/internet/process.py
@@ -367,6 +367,15 @@ class _BaseProcess(BaseProcess):
@type environment: L{dict}.
@param kwargs: keyword arguments to L{_setupChild} method.
"""
+ from os import posix_spawn, POSIX_SPAWN_DUP2, POSIX_SPAWN_CLOSE
+ fdmap = kwargs.get("fdmap", {})
+ actions = [
+ (POSIX_SPAWN_DUP2, childFD, parentFD)
+ for (parentFD, childFD) in fdmap.items()
+ ]
+ self.pid = posix_spawn(executable, args, environment, file_actions=actions)
+ return
+
collectorEnabled = gc.isenabled()
gc.disable()
try: