mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #12573: Add resource checks for dangling Thread and Process objects.
This commit is contained in:
parent
b8298a01e6
commit
c081c0c6a0
4 changed files with 47 additions and 1 deletions
|
@ -6,6 +6,7 @@ import _thread
|
|||
from time import time as _time, sleep as _sleep
|
||||
from traceback import format_exc as _format_exc
|
||||
from collections import deque
|
||||
from _weakrefset import WeakSet
|
||||
|
||||
# Note regarding PEP 8 compliant names
|
||||
# This threading model was originally inspired by Java, and inherited
|
||||
|
@ -606,6 +607,8 @@ _active_limbo_lock = _allocate_lock()
|
|||
_active = {} # maps thread id to Thread object
|
||||
_limbo = {}
|
||||
|
||||
# For debug and leak testing
|
||||
_dangling = WeakSet()
|
||||
|
||||
# Main class for threads
|
||||
|
||||
|
@ -640,6 +643,7 @@ class Thread(_Verbose):
|
|||
# sys.stderr is not stored in the class like
|
||||
# sys.exc_info since it can be changed between instances
|
||||
self._stderr = _sys.stderr
|
||||
_dangling.add(self)
|
||||
|
||||
def _reset_internal_locks(self):
|
||||
# private! Called by _after_fork() to reset our internal locks as
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue