223 initialTasks = 2 * NumberOfProcesses |
223 initialTasks = 2 * NumberOfProcesses |
224 for task in argumentsList[:initialTasks]: |
224 for task in argumentsList[:initialTasks]: |
225 taskQueue.put(task) |
225 taskQueue.put(task) |
226 |
226 |
227 # Start worker processes |
227 # Start worker processes |
228 for _ in range(NumberOfProcesses): |
228 workers = [ |
229 multiprocessing.Process( |
229 multiprocessing.Process( |
230 target=worker, args=(taskQueue, doneQueue) |
230 target=workerTask, args=(taskQueue, doneQueue) |
231 ).start() |
231 ) for _ in range(NumberOfProcesses) |
|
232 ] |
|
233 for worker in workers: |
|
234 worker.start() |
232 |
235 |
233 # Get and send results |
236 # Get and send results |
234 endIndex = len(argumentsList) - initialTasks |
237 endIndex = len(argumentsList) - initialTasks |
235 for i in range(len(argumentsList)): |
238 for i in range(len(argumentsList)): |
236 resultSent = False |
239 resultSent = False |
256 taskQueue.put(argumentsList[i + initialTasks]) |
259 taskQueue.put(argumentsList[i + initialTasks]) |
257 |
260 |
258 # Tell child processes to stop |
261 # Tell child processes to stop |
259 for _ in range(NumberOfProcesses): |
262 for _ in range(NumberOfProcesses): |
260 taskQueue.put('STOP') |
263 taskQueue.put('STOP') |
261 |
264 |
262 |
265 for worker in workers: |
263 def worker(inputQueue, outputQueue): |
266 worker.join() |
|
267 worker.close() |
|
268 |
|
269 |
|
270 def workerTask(inputQueue, outputQueue): |
264 """ |
271 """ |
265 Module function acting as the parallel worker for the style check. |
272 Module function acting as the parallel worker for the style check. |
266 |
273 |
267 @param inputQueue input queue (multiprocessing.Queue) |
274 @param inputQueue input queue (multiprocessing.Queue) |
268 @param outputQueue output queue (multiprocessing.Queue) |
275 @param outputQueue output queue (multiprocessing.Queue) |