mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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 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 @@ | |||
| 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() | ||||
| 
 | ||||
| if verbose: | ||||
|     print 'waiting for all tasks to complete' | ||||
| for t in threads: | ||||
|     t.join() | ||||
| if verbose: | ||||
|     print 'all tasks done' | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tim Peters
						Tim Peters