mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Test failed because these was no expected-output file, but always printed
to stdout. Repaired by not printing at all except in verbose mode. Made the test about 6x faster -- envelope analysis showed it took time proportional to the square of the # of tasks. Now it's linear.
This commit is contained in:
parent
16bb41934c
commit
02035bc68d
1 changed files with 8 additions and 5 deletions
|
@ -7,6 +7,8 @@ import random
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
# This takes about n/3 seconds to run (about n/3 clumps of tasks, times
|
||||||
|
# about 1 second per clump).
|
||||||
numtasks = 10
|
numtasks = 10
|
||||||
|
|
||||||
# no more than 3 of the 10 can run at once
|
# no more than 3 of the 10 can run at once
|
||||||
|
@ -17,9 +19,9 @@ running = 0
|
||||||
class TestThread(threading.Thread):
|
class TestThread(threading.Thread):
|
||||||
def run(self):
|
def run(self):
|
||||||
global running
|
global running
|
||||||
delay = random.random() * numtasks
|
delay = random.random() * 2
|
||||||
if verbose:
|
if verbose:
|
||||||
print 'task', self.getName(), 'will run for', round(delay, 1), 'sec'
|
print 'task', self.getName(), 'will run for', delay, 'sec'
|
||||||
sema.acquire()
|
sema.acquire()
|
||||||
mutex.acquire()
|
mutex.acquire()
|
||||||
running = running + 1
|
running = running + 1
|
||||||
|
@ -45,8 +47,9 @@ def starttasks():
|
||||||
|
|
||||||
starttasks()
|
starttasks()
|
||||||
|
|
||||||
print 'waiting for all tasks to complete'
|
if verbose:
|
||||||
|
print 'waiting for all tasks to complete'
|
||||||
for t in threads:
|
for t in threads:
|
||||||
t.join()
|
t.join()
|
||||||
print 'all tasks done'
|
if verbose:
|
||||||
|
print 'all tasks done'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue