From 9ce96a7e61e9f969918bc811f13bcf62af832dc4 Mon Sep 17 00:00:00 2001 From: Wim Pomp Date: Mon, 8 Jul 2024 17:57:23 +0200 Subject: [PATCH] - redirect stdout and stderr in child processes --- parfor/__init__.py | 5 +++-- pyproject.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/parfor/__init__.py b/parfor/__init__.py index 0bdaae1..c82bb08 100644 --- a/parfor/__init__.py +++ b/parfor/__init__.py @@ -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() diff --git a/pyproject.toml b/pyproject.toml index 7e3c05a..9d77457 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 "] license = "GPLv3"