RadonMetrics/CodeMetricsCalculator.py

branch
eric7
changeset 87
6ae91562f0a7
parent 75
e7ed383ac6a7
child 90
1405e41edc0b
equal deleted inserted replaced
86:326e08294b3d 87:6ae91562f0a7
77 initialTasks = 2 * NumberOfProcesses 77 initialTasks = 2 * NumberOfProcesses
78 for task in argumentsList[:initialTasks]: 78 for task in argumentsList[:initialTasks]:
79 taskQueue.put(task) 79 taskQueue.put(task)
80 80
81 # Start worker processes 81 # Start worker processes
82 for _ in range(NumberOfProcesses): 82 workers = [
83 multiprocessing.Process( 83 multiprocessing.Process(
84 target=worker, args=(taskQueue, doneQueue)).start() 84 target=workerTask, args=(taskQueue, doneQueue)
85 ) for _ in range(NumberOfProcesses)
86 ]
87 for worker in workers:
88 worker.start()
85 89
86 # Get and send results 90 # Get and send results
87 endIndex = len(argumentsList) - initialTasks 91 endIndex = len(argumentsList) - initialTasks
88 for i in range(len(argumentsList)): 92 for i in range(len(argumentsList)):
89 resultSent = False 93 resultSent = False
109 taskQueue.put(argumentsList[i + initialTasks]) 113 taskQueue.put(argumentsList[i + initialTasks])
110 114
111 # Tell child processes to stop 115 # Tell child processes to stop
112 for _ in range(NumberOfProcesses): 116 for _ in range(NumberOfProcesses):
113 taskQueue.put('STOP') 117 taskQueue.put('STOP')
118
119 for worker in workers:
120 worker.join()
121 worker.close()
114 122
115 123
116 def worker(inputQueue, outputQueue): 124 def workerTask(inputQueue, outputQueue):
117 """ 125 """
118 Module function acting as the parallel worker for the raw code metrics 126 Module function acting as the parallel worker for the raw code metrics
119 calculation. 127 calculation.
120 128
121 @param inputQueue input queue 129 @param inputQueue input queue

eric ide

mercurial