+++ /dev/null
-diff --git a/Lib/threading.py b/Lib/threading.py
-index cb49c4a..c9795a5 100644
---- a/Lib/threading.py
-+++ b/Lib/threading.py
-@@ -305,7 +305,7 @@ class _Condition(_Verbose):
- else:
- return True
-
-- def wait(self, timeout=None):
-+ def wait(self, timeout=None, balancing=True):
- """Wait until notified or until a timeout occurs.
-
- If the calling thread has not acquired the lock when this method is
-@@ -354,7 +354,10 @@ class _Condition(_Verbose):
- remaining = endtime - _time()
- if remaining <= 0:
- break
-- delay = min(delay * 2, remaining, .05)
-+ if balancing:
-+ delay = min(delay * 2, remaining, 0.05)
-+ else:
-+ delay = remaining
- _sleep(delay)
- if not gotit:
- if __debug__:
-@@ -599,7 +602,7 @@ class _Event(_Verbose):
- with self.__cond:
- self.__flag = False
-
-- def wait(self, timeout=None):
-+ def wait(self, timeout=None, balancing=True):
- """Block until the internal flag is true.
-
- If the internal flag is true on entry, return immediately. Otherwise,
-@@ -617,7 +620,7 @@ class _Event(_Verbose):
- """
- with self.__cond:
- if not self.__flag:
-- self.__cond.wait(timeout)
-+ self.__cond.wait(timeout, balancing)
- return self.__flag
-
- # Helper to generate new thread names
-@@ -908,7 +911,7 @@ class Thread(_Verbose):
- if 'dummy_threading' not in _sys.modules:
- raise
-
-- def join(self, timeout=None):
-+ def join(self, timeout=None, balancing=True):
- """Wait until the thread terminates.
-
- This blocks the calling thread until the thread whose join() method is
-@@ -957,7 +960,7 @@ class Thread(_Verbose):
- if __debug__:
- self._note("%s.join(): timed out", self)
- break
-- self.__block.wait(delay)
-+ self.__block.wait(delay, balancing)
- else:
- if __debug__:
- self._note("%s.join(): thread stopped", self)
-@@ -1143,7 +1146,7 @@ class _DummyThread(Thread):
- def _set_daemon(self):
- return True
-
-- def join(self, timeout=None):
-+ def join(self, timeout=None, balancing=True):
- assert False, "cannot join a dummy thread"
-
-