src/eric7/CodeFormatting/BlackFormattingDialog.py

branch
eric7
changeset 9289
ba49c41e8f63
parent 9284
3b3a4f659782
child 9292
a5c8a0213fe3
equal deleted inserted replaced
9288:ce20d7c936b1 9289:ba49c41e8f63
270 270
271 # Create queues 271 # Create queues
272 taskQueue = multiprocessing.Queue() 272 taskQueue = multiprocessing.Queue()
273 doneQueue = multiprocessing.Queue() 273 doneQueue = multiprocessing.Queue()
274 274
275 # Submit tasks 275 # Submit tasks (initially two times the number of processes)
276 for file in files: 276 tasks = len(files)
277 initialTasks = 2 * NumberOfProcesses
278 for _ in range(initialTasks):
279 file = files.pop(0)
277 relSrc = self.__project.getRelativePath(str(file)) if self.__project else "" 280 relSrc = self.__project.getRelativePath(str(file)) if self.__project else ""
278 taskQueue.put((file, relSrc)) 281 taskQueue.put((file, relSrc))
279 282
280 # Start worker processes 283 # Start worker processes
281 workers = [ 284 workers = [
287 ] 290 ]
288 for worker in workers: 291 for worker in workers:
289 worker.start() 292 worker.start()
290 293
291 # Get the results from the worker tasks 294 # Get the results from the worker tasks
292 for _ in range(len(files)): 295 for _ in range(tasks):
293 result = doneQueue.get() 296 result = doneQueue.get()
294 self.__handleBlackFormattingResult( 297 self.__handleBlackFormattingResult(
295 result.status, result.filename, result.data 298 result.status, result.filename, result.data
296 ) 299 )
297 300
298 if self.__cancelled: 301 if self.__cancelled:
299 break 302 break
300 303
301 if self.__cancelled: 304 if files:
302 for worker in workers: 305 file = files.pop(0)
303 worker.terminate() 306 relSrc = (
304 else: 307 self.__project.getRelativePath(str(file)) if self.__project else ""
305 # Tell child processes to stop 308 )
306 for _ in range(NumberOfProcesses): 309 taskQueue.put((file, relSrc))
307 taskQueue.put("STOP") 310
311 # Tell child processes to stop
312 for _ in range(NumberOfProcesses):
313 taskQueue.put("STOP")
308 314
309 for worker in workers: 315 for worker in workers:
310 worker.join() 316 worker.join()
311 worker.close() 317 worker.close()
312 318

eric ide

mercurial