--- a/RadonMetrics/CodeMetricsCalculator.py Sun Jul 11 14:40:09 2021 +0200 +++ b/RadonMetrics/CodeMetricsCalculator.py Mon Sep 27 15:43:50 2021 +0200 @@ -79,9 +79,13 @@ taskQueue.put(task) # Start worker processes - for _ in range(NumberOfProcesses): + workers = [ multiprocessing.Process( - target=worker, args=(taskQueue, doneQueue)).start() + target=workerTask, args=(taskQueue, doneQueue) + ) for _ in range(NumberOfProcesses) + ] + for worker in workers: + worker.start() # Get and send results endIndex = len(argumentsList) - initialTasks @@ -111,9 +115,13 @@ # Tell child processes to stop for _ in range(NumberOfProcesses): taskQueue.put('STOP') + + for worker in workers: + worker.join() + worker.close() -def worker(inputQueue, outputQueue): +def workerTask(inputQueue, outputQueue): """ Module function acting as the parallel worker for the raw code metrics calculation.