code: def make_a_pause(self, timeout=0.0001, check_time_change=True):
          
          if timeout == 0:
              timeout = 0.0001
  
          if not check_time_change:
              # Time to sleep
              time.sleep(timeout)
              self.sleep_time += timeout
              return 0, 0
  
          # Check is system time changed
          before = time.time()
          time_changed = self.check_for_system_time_change()
          after = time.time()
          elapsed = after - before
  
          if elapsed > timeout:
              return elapsed, time_changed
          # Time to sleep
          time.sleep(timeout - elapsed)
  
          # Increase our sleep time for the time we slept
          before += time_changed
          self.sleep_time += time.time() - before
  
          return elapsed, time_changed
docs: Wait up to timeout and check for system time change.
  
          This function checks if the system time changed since the last call. If so,
          the difference is returned to the caller.
          The duration of this call is removed from the timeout. If this duration is
          greater than the required timeout, no sleep is executed and the extra time
          is returned to the caller
  
          If the required timeout was overlapped, then the first return value will be
          greater than the required timeout.
  
          If the required timeout is null, then the timeout value is set as a very short time
          to keep a nice behavior to the system CPU ;)
  
          :param timeout: timeout to wait for activity
          :type timeout: float
          :param check_time_change: True (default) to check if the system time changed
          :type check_time_change: bool
          :return:Returns a 2-tuple:
          * first value is the time spent for the time change check
          * second value is the time change difference
          :rtype: tuple