Part of #336 (usability epic).
Problem
CPP.run(..., n_jobs>1) crashes in non-notebook contexts (python -c, heredoc, some subprocess
shells). The progress-sharing path .../cpp/_filters/_progress.py:_get_mp_shared() calls
multiprocessing.Manager(), which raises:
EOFError
File ".../multiprocessing/managers.py", start -> reader.recv() -> _recv_bytes -> raise EOFError
Workaround: n_jobs=1, or always run from a real .py module file. This makes multi-core CPP fragile
in CI/scripts/pipelines.
Suggestion
Wrap the mp.Manager() spawn in try/except and degrade gracefully to single-process progress
(or a no-op progress bar) instead of aborting the run.
Part of #336 (usability epic).
Problem
CPP.run(..., n_jobs>1)crashes in non-notebook contexts (python -c, heredoc, some subprocessshells). The progress-sharing path
.../cpp/_filters/_progress.py:_get_mp_shared()callsmultiprocessing.Manager(), which raises:Workaround:
n_jobs=1, or always run from a real.pymodule file. This makes multi-core CPP fragilein CI/scripts/pipelines.
Suggestion
Wrap the
mp.Manager()spawn in try/except and degrade gracefully to single-process progress(or a no-op progress bar) instead of aborting the run.