def increment_time_by(self, secs):
        """This is called when wpilib.Timer.delay() occurs"""
        self.slept = [True] * 3

        was_paused = False

        with self.lock:

            self._increment_tm(secs)

            while self.paused and secs > 0:

                if self.pause_secs is not None:
                    # if pause_secs is set, this means it was a step operation,
                    # so we adjust the wait accordingly
                    if secs > self.pause_secs:
                        secs -= self.pause_secs
                    else:
                        secs = 0

                    self.pause_secs = None

                was_paused = True

                self.lock.wait()

                # if the operator tried to do another step, this will update
                # the paused flag so we don't escape the loop
                self._increment_tm(secs)

        if not was_paused:
            time.sleep(secs)