From e6539c4401cd3f60a5cc176717852886cb9d152a Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sat, 8 Jan 2005 02:43:53 +0000 Subject: In _DummyThread objects the lock stored in __block (allocated thanks to _Thread.__init__) was never used. This is a waste since locks use OS primitives that are in limited supply. So the lock is deleted in _DummyThread.__init__ . Closes bug #1089632. --- Lib/threading.py | 1 + Misc/NEWS | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Lib/threading.py b/Lib/threading.py index 860c2fd..61c25b6 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -653,6 +653,7 @@ class _DummyThread(Thread): def __init__(self): Thread.__init__(self, name=_newname("Dummy-%d")) + del self._Thread__block self._Thread__started = True _active_limbo_lock.acquire() _active[_get_ident()] = self diff --git a/Misc/NEWS b/Misc/NEWS index d7b35d5..8d00f22 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -33,6 +33,11 @@ Extension Modules Library ------- +- _DummyThread objects in the threading module now delete self.__block that is + inherited from _Thread since it uses up a lock allocated by 'thread'. The + lock primitives tend to be limited in number and thus should not be wasted on + a _DummyThread object. Fixes bug #1089632. + - The imghdr module now detects Exif files. - StringIO.truncate() now correctly adjusts the size attribute. -- cgit v0.12