import time

class IdleDetector:
    def __init__(self, idle_threshold=0.1, idle_duration=5):
        self.idle_threshold = idle_threshold  # Threshold for task execution time (as a fraction of total time)
        self.idle_duration = idle_duration  # Minimum duration (seconds) for which the system must be idle to be considered idle
        self.last_active_time = time.time()
        self.is_currently_idle = False

    def update(self, execution_time):
        loop_time = 0.01 # Assume 10ms loop time
        cpu_usage = execution_time / loop_time

        if cpu_usage > self.idle_threshold:
            self.last_active_time = time.time()
            self.is_currently_idle = False
        else:
            self.is_currently_idle = time.time() - self.last_active_time > self.idle_duration

    def is_idle(self):
        return self.is_currently_idle
