Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2a4d4f3
Add some implementation documentation
exarkun Jun 27, 2022
c9e33c7
Move _blocking_on management into a context manager
exarkun Jun 27, 2022
c5912bf
Support re-entrant imports in _BlockingOnManager
exarkun Jun 30, 2022
27ae2f0
Apply formatting and comment changes from review
exarkun Nov 28, 2022
1fcc78b
Merge remote-tracking branch 'origin/main' into 91351-importlib-reent…
exarkun Nov 28, 2022
5fd15d8
Rename _BlockingOnManager.tid as suggested by review
exarkun Nov 28, 2022
7a24f2c
flip the first two arguments to _has_deadlock as suggested by review
exarkun Nov 28, 2022
08892b4
Mark up parameters following PEP 257 as suggested by review
exarkun Nov 28, 2022
59b53c0
rename the `_blocking_on` parameter as suggested by review
exarkun Nov 28, 2022
20007c5
further document motivation for `blocking_on` parameter as suggested …
exarkun Nov 28, 2022
bad1d3c
Rename more _has_deadlocked parameters as suggested by review
exarkun Nov 28, 2022
2821fcf
Treat None and [] the same for this case as suggested by review
exarkun Nov 28, 2022
95c73cb
update old comment to refer to new names as suggested by review
exarkun Nov 28, 2022
49ff9dd
Make _ModuleLock.count a list of True as suggested by review
exarkun Nov 28, 2022
cd174a8
Adjust the check for a module lock being released as suggest by review
exarkun Nov 28, 2022
719b181
Finish the _BlockingOnManager.tid renaming
exarkun Nov 28, 2022
6e809cd
Fix renaming of `_blocking_on` parameter to `_has_deadlocked`
exarkun Nov 28, 2022
74cbccd
Apply review suggestion
exarkun Jan 6, 2023
c579533
Apply review suggestion
exarkun Jan 6, 2023
decb70b
Apply review suggestion
exarkun Jan 6, 2023
3c91cc3
Apply review suggestion
exarkun Jan 6, 2023
e032ae2
Apply review suggestion
exarkun Jan 6, 2023
dba393a
Apply review suggestion
exarkun Jan 6, 2023
25d554b
Apply review suggestion
exarkun Jan 6, 2023
44157a9
Apply review suggestion
exarkun Jan 6, 2023
f99ed46
Apply review suggestion
exarkun Jan 6, 2023
b6d21f8
Apply review suggestion
exarkun Jan 6, 2023
5643442
Apply review suggestion
exarkun Jan 6, 2023
92036a8
Apply review suggestion
exarkun Jan 6, 2023
bf14ce2
Apply review suggestion
exarkun Jan 6, 2023
1cc6033
Apply review suggestion
exarkun Jan 6, 2023
ab40737
Apply review suggestion
exarkun Jan 6, 2023
36082eb
news blurb
exarkun Jan 6, 2023
55fc599
Merge branch 'main' into 91351-importlib-reentrancy
exarkun Jan 6, 2023
b35f0a8
Apply suggestions from code review
exarkun Jan 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
flip the first two arguments to _has_deadlock as suggested by review
Also rename it as suggested by review
  • Loading branch information
exarkun committed Nov 28, 2022
commit 7a24f2c50a98aa277fb656de5964f43c57fec946
8 changes: 4 additions & 4 deletions Lib/importlib/_bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class _DeadlockError(RuntimeError):



def _has_deadlock(seen, subject, tids, _blocking_on):
def _has_deadlocked(subject, seen, tids, _blocking_on):
"""Check if 'subject' is holding the same lock as another thread(s).

The search within _blocking_on starts with the threads listed in tids.
Expand Down Expand Up @@ -128,7 +128,7 @@ def _has_deadlock(seen, subject, tids, _blocking_on):

# Follow the edges out from this thread.
edges = [lock.owner for lock in blocking_on]
if _has_deadlock(seen, subject, edges, _blocking_on):
if _has_deadlocked(subject, seen, edges, _blocking_on):
return True

return False
Expand Down Expand Up @@ -201,10 +201,10 @@ def has_deadlock(self):
# look at the "blocking on" state to see if any threads are blocking
# on getting the import lock for any module for which the import lock
# is held by this thread.
return _has_deadlock(
seen=set(),
return _has_deadlocked(
# Try to find this thread
subject=_thread.get_ident(),
seen=set(),
# starting from the thread that holds the import lock for this
# module.
tids=[self.owner],
Expand Down