in cookbooks/aws-parallelcluster-computefleet/files/clusterstatusmgtd/clusterstatusmgtd.py [0:0]
def _sleep_remaining_loop_time(total_loop_time, loop_start_time=None):
end_time = datetime.now(tz=timezone.utc)
if not loop_start_time:
loop_start_time = end_time
# Always convert the received loop_start_time to utc timezone. This is so that we never rely on the system local
# time and risk to compare native datatime instances with localized ones
loop_start_time = loop_start_time.astimezone(tz=timezone.utc)
time_delta = (end_time - loop_start_time).total_seconds()
if 0 <= time_delta < total_loop_time:
time.sleep(total_loop_time - time_delta)