summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/threading.py5
-rw-r--r--Misc/NEWS2
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/threading.py b/Lib/threading.py
index 185c980..0c92ab1 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -1056,10 +1056,13 @@ class Thread:
raise RuntimeError("cannot join thread before it is started")
if self is current_thread():
raise RuntimeError("cannot join current thread")
+
if timeout is None:
self._wait_for_tstate_lock()
- else:
+ elif timeout >= 0:
self._wait_for_tstate_lock(timeout=timeout)
+ # else it's a negative timeout - precise behavior isn't documented
+ # then, but historically .join() returned in this case
def _wait_for_tstate_lock(self, block=True, timeout=-1):
# Issue #18808: wait for the thread state to be gone.
diff --git a/Misc/NEWS b/Misc/NEWS
index a083cc3..e7899fd 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,8 @@ Core and Builtins
Library
-------
+- Issue #19399: fix sporadic test_subprocess failure.
+
- Issue #13234: Fix os.listdir to work with extended paths on Windows.
Patch by Santoso Wijaya.