diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2009-10-23 18:32:15 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2009-10-23 18:32:15 (GMT) |
commit | b5cf8a059c24a47e744fa22cd8628425f91908fd (patch) | |
tree | 5f83bc479f1c343b7eb3f127653684eda6997285 /Lib/test/test_thread.py | |
parent | d617cba62d16485cf004f1c2dec0e072d592e0ea (diff) | |
download | cpython-b5cf8a059c24a47e744fa22cd8628425f91908fd.zip cpython-b5cf8a059c24a47e744fa22cd8628425f91908fd.tar.gz cpython-b5cf8a059c24a47e744fa22cd8628425f91908fd.tar.bz2 |
Issue #7194: test_thread could try to release an unacquired mutex (and fail).
Diffstat (limited to 'Lib/test/test_thread.py')
-rw-r--r-- | Lib/test/test_thread.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py index ffd5244..66ad22f 100644 --- a/Lib/test/test_thread.py +++ b/Lib/test/test_thread.py @@ -26,6 +26,7 @@ class BasicThreadTest(unittest.TestCase): self.done_mutex.acquire() self.running_mutex = thread.allocate_lock() self.random_mutex = thread.allocate_lock() + self.created = 0 self.running = 0 self.next_ident = 0 @@ -37,6 +38,7 @@ class ThreadRunningTests(BasicThreadTest): self.next_ident += 1 verbose_print("creating task %s" % self.next_ident) thread.start_new_thread(self.task, (self.next_ident,)) + self.created += 1 self.running += 1 def task(self, ident): @@ -47,7 +49,7 @@ class ThreadRunningTests(BasicThreadTest): verbose_print("task %s done" % ident) with self.running_mutex: self.running -= 1 - if self.running == 0: + if self.created == NUMTASKS and self.running == 0: self.done_mutex.release() def test_starting_threads(self): @@ -89,6 +91,7 @@ class ThreadRunningTests(BasicThreadTest): for tss in (262144, 0x100000): verbose_print("trying stack_size = (%d)" % tss) self.next_ident = 0 + self.created = 0 for i in range(NUMTASKS): self.newtask() |