]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-127586: multiprocessing.Pool does not properly restore blocked signals (try 2...
authorStephen Hansen <stephen.paul.hansen@gmail.com>
Fri, 27 Dec 2024 22:09:01 +0000 (17:09 -0500)
committerGitHub <noreply@github.com>
Fri, 27 Dec 2024 22:09:01 +0000 (14:09 -0800)
commitaeb9b65aa26444529e4adc7d6e5b0d3dd9889ec2
tree40cced63f9b0dd96af9949ac47a0e131d26aca4a
parent64173cd6f2d8dc95c6f8b67912d0edd1c1b707d5
gh-127586: multiprocessing.Pool does not properly restore blocked signals (try 2) (GH-128011)

Correct pthread_sigmask in resource_tracker to restore old signals

Using SIG_UNBLOCK to remove blocked "ignored signals" may accidentally
cause side effects if the calling parent already had said signals
blocked to begin with and did not intend to unblock them when
creating a pool. Use SIG_SETMASK instead with the previous mask of
blocked signals to restore the original blocked set.

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
Lib/multiprocessing/resource_tracker.py
Lib/test/_test_multiprocessing.py
Misc/NEWS.d/next/Library/2024-12-03-20-28-08.gh-issue-127586.zgotYF.rst [new file with mode: 0644]