def measure_loop(experiment: str, max_total_time: int): """Continuously measure trials for |experiment|.""" db_utils.initialize() logs.initialize(default_extras={ 'component': 'dispatcher', }) with multiprocessing.Pool() as pool, multiprocessing.Manager() as manager: # Using Multiprocessing.Queue will fail with a complaint about # inheriting queue. q = manager.Queue() # pytype: disable=attribute-error while True: try: # Get whether all trials have ended before we measure to prevent # races. all_trials_ended = scheduler.all_trials_ended(experiment) if not measure_all_trials(experiment, max_total_time, pool, q): # We didn't measure any trials. if all_trials_ended: # There are no trials producing snapshots to measure. # Given that we couldn't measure any snapshots, we won't # be able to measure any the future, so break now. break except Exception: # pylint: disable=broad-except logger.error('Error occurred during measuring.') time.sleep(FAIL_WAIT_SECONDS) logger.info('Finished measuring.')
def measure_loop(experiment: str, max_total_time: int, detailed_coverage_data): """Continuously measure trials for |experiment|.""" logger.info('Start measure_loop.') with multiprocessing.Pool() as pool, multiprocessing.Manager() as manager: set_up_coverage_binaries(pool, experiment) # Using Multiprocessing.Queue will fail with a complaint about # inheriting queue. q = manager.Queue() # pytype: disable=attribute-error while True: try: # Get whether all trials have ended before we measure to prevent # races. all_trials_ended = scheduler.all_trials_ended(experiment) if not measure_all_trials(experiment, max_total_time, pool, manager, q, detailed_coverage_data): # We didn't measure any trials. if all_trials_ended: # There are no trials producing snapshots to measure. # Given that we couldn't measure any snapshots, we won't # be able to measure any the future, so stop now. break except Exception: # pylint: disable=broad-except logger.error('Error occurred during measuring.') time.sleep(FAIL_WAIT_SECONDS) logger.info('Finished measure loop.')