Process a task with semaphore control.
(task_data: Dict, task_index: int)
| 419 | completed_count = 0 |
| 420 | |
| 421 | async def process_with_semaphore(task_data: Dict, task_index: int): |
| 422 | """Process a task with semaphore control.""" |
| 423 | nonlocal completed_count |
| 424 | async with semaphore: |
| 425 | try: |
| 426 | await process_single_task(optimizer_type, benchmark_name, task_data, task_index, total_tasks, result_saver) |
| 427 | finally: |
| 428 | completed_count += 1 |
| 429 | # Progress reporting |
| 430 | if completed_count % concurrency == 0 or completed_count == total_tasks: |
| 431 | progress_msg = f"| 📊 Progress: {completed_count}/{total_tasks} tasks completed" |
| 432 | logger.info(progress_msg) |
| 433 | print(progress_msg) |
| 434 | |
| 435 | # Create all tasks and run them with semaphore-controlled concurrency |
| 436 | tasks = [process_with_semaphore(task_data, i) for i, task_data in enumerate(all_tasks)] |
no test coverage detected