- redirect stdout and stderr in child processes

This commit is contained in:
Wim Pomp
2024-07-08 17:57:23 +02:00
parent b609df8b52
commit 9ce96a7e61
2 changed files with 4 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ from __future__ import annotations
import multiprocessing
from collections import UserDict
from contextlib import ExitStack
from contextlib import ExitStack, redirect_stderr, redirect_stdout
from functools import wraps
from os import getpid
from time import time
@@ -531,7 +531,8 @@ class Worker:
task = self.queue_in.get(True, 0.02)
try:
self.add_to_queue('started', task.pool_id, task.handle, pid)
self.add_to_queue('done', task.pool_id, task(self.shared_memory))
with redirect_stdout(None), redirect_stderr(None):
self.add_to_queue('done', task.pool_id, task(self.shared_memory))
except Exception: # noqa
self.add_to_queue('task_error', task.pool_id, task.handle, format_exc())
self.shared_memory.garbage_collect()

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "parfor"
version = "2024.5.1"
version = "2024.7.0"
description = "A package to mimic the use of parfor as done in Matlab."
authors = ["Wim Pomp <wimpomp@gmail.com>"]
license = "GPLv3"