#11866: Eliminate race condition in the computation of names for new threads.

Original patch by Peter Saveliev.
This commit is contained in:
R David Murray 2014-10-04 17:40:43 -04:00
parent 429866d136
commit d999c34955
2 changed files with 7 additions and 4 deletions

View File

@ -11,6 +11,7 @@ except ImportError:
import warnings
from collections import deque as _deque
from itertools import count as _count
from time import time as _time, sleep as _sleep
from traceback import format_exc as _format_exc
@ -623,11 +624,10 @@ class _Event(_Verbose):
self.__cond.release()
# Helper to generate new thread names
_counter = 0
_counter = _count().next
_counter() # Consume 0 so first non-main thread has id 1.
def _newname(template="Thread-%d"):
global _counter
_counter = _counter + 1
return template % _counter
return template % _counter()
# Active thread administration
_active_limbo_lock = _allocate_lock()

View File

@ -34,6 +34,9 @@ Core and Builtins
Library
-------
- Issue #11866: Eliminated race condition in the computation of names
for new threads.
- Issue #22219: The zipfile module CLI now adds entries for directories
(including empty directories) in ZIP file.