Issue #7194: test_thread could try to release an unacquired mutex (and fail).
This commit is contained in:
parent
d617cba62d
commit
b5cf8a059c
|
@ -26,6 +26,7 @@ class BasicThreadTest(unittest.TestCase):
|
||||||
self.done_mutex.acquire()
|
self.done_mutex.acquire()
|
||||||
self.running_mutex = thread.allocate_lock()
|
self.running_mutex = thread.allocate_lock()
|
||||||
self.random_mutex = thread.allocate_lock()
|
self.random_mutex = thread.allocate_lock()
|
||||||
|
self.created = 0
|
||||||
self.running = 0
|
self.running = 0
|
||||||
self.next_ident = 0
|
self.next_ident = 0
|
||||||
|
|
||||||
|
@ -37,6 +38,7 @@ class ThreadRunningTests(BasicThreadTest):
|
||||||
self.next_ident += 1
|
self.next_ident += 1
|
||||||
verbose_print("creating task %s" % self.next_ident)
|
verbose_print("creating task %s" % self.next_ident)
|
||||||
thread.start_new_thread(self.task, (self.next_ident,))
|
thread.start_new_thread(self.task, (self.next_ident,))
|
||||||
|
self.created += 1
|
||||||
self.running += 1
|
self.running += 1
|
||||||
|
|
||||||
def task(self, ident):
|
def task(self, ident):
|
||||||
|
@ -47,7 +49,7 @@ class ThreadRunningTests(BasicThreadTest):
|
||||||
verbose_print("task %s done" % ident)
|
verbose_print("task %s done" % ident)
|
||||||
with self.running_mutex:
|
with self.running_mutex:
|
||||||
self.running -= 1
|
self.running -= 1
|
||||||
if self.running == 0:
|
if self.created == NUMTASKS and self.running == 0:
|
||||||
self.done_mutex.release()
|
self.done_mutex.release()
|
||||||
|
|
||||||
def test_starting_threads(self):
|
def test_starting_threads(self):
|
||||||
|
@ -89,6 +91,7 @@ class ThreadRunningTests(BasicThreadTest):
|
||||||
for tss in (262144, 0x100000):
|
for tss in (262144, 0x100000):
|
||||||
verbose_print("trying stack_size = (%d)" % tss)
|
verbose_print("trying stack_size = (%d)" % tss)
|
||||||
self.next_ident = 0
|
self.next_ident = 0
|
||||||
|
self.created = 0
|
||||||
for i in range(NUMTASKS):
|
for i in range(NUMTASKS):
|
||||||
self.newtask()
|
self.newtask()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue