mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +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 time
|
||||
|
||||
# This takes about n/3 seconds to run (about n/3 clumps of tasks, times
|
||||
# about 1 second per clump).
|
||||
numtasks = 10
|
||||
|
||||
# no more than 3 of the 10 can run at once
|
||||
|
@ -17,9 +19,9 @@ running = 0
|
|||
class TestThread(threading.Thread):
|
||||
def run(self):
|
||||
global running
|
||||
delay = random.random() * numtasks
|
||||
delay = random.random() * 2
|
||||
if verbose:
|
||||
print 'task', self.getName(), 'will run for', round(delay, 1), 'sec'
|
||||
print 'task', self.getName(), 'will run for', delay, 'sec'
|
||||
sema.acquire()
|
||||
mutex.acquire()
|
||||
running = running + 1
|
||||
|
@ -45,8 +47,9 @@ def starttasks():
|
|||
|
||||
starttasks()
|
||||
|
||||
print 'waiting for all tasks to complete'
|
||||
if verbose:
|
||||
print 'waiting for all tasks to complete'
|
||||
for t in threads:
|
||||
t.join()
|
||||
print 'all tasks done'
|
||||
|
||||
if verbose:
|
||||
print 'all tasks done'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue