gh-145242: Add early validation for target in Thread and Process#145243
Open
gourijain029-del wants to merge 2 commits intopython:mainfrom
Open
gh-145242: Add early validation for target in Thread and Process#145243gourijain029-del wants to merge 2 commits intopython:mainfrom
gourijain029-del wants to merge 2 commits intopython:mainfrom
Conversation
| @@ -0,0 +1 @@ | |||
| Fix a segmentation fault in :func:`unicodedata.iter_graphemes` when the iterator is deallocated after being cleared by the garbage collector. | |||
Member
There was a problem hiding this comment.
You have unrelated changes on this branch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
his PR adds early validation for the
target
argument in the constructors of threading.Thread and multiprocessing.Process.
Changes
Early Validation: The
target
argument is now checked for callability within
init
. If a non-callable
target
is provided (and it is not
None
), a TypeError is raised immediately in the calling thread.
Improved Tracebacks: Previously, the validation would only fail deep within the library's internal
_bootstrap
or
start()
logic. By moving this check to the constructor, the resulting traceback now clearly points to the line where the
Thread
or
Process
object was instantiated, making it significantly easier for users to debug.
Group Argument Validation: Replaced internal assert group is None statements with explicit TypeError raises. This ensures consistent error reporting even when Python is run with optimizations (-O).
Unit Tests: Added
test_invalid_args
to both test_threading and test_multiprocessing to ensure correct behavior and prevent regressions.
targettoThread(...).start()does not include the line calling thestart()method #145242