EXERCISE-TIMERS> (run-auto-rescheduling-timer-test 100 5)
NIL
EXERCISE-TIMERS> (time (check-rescheduling-timers))
Evaluation took:
  0.000 seconds of real time
  0.000000 seconds of total run time (0.000000 user, 0.000000 system)
  100.00% CPU
  59,750 processor cycles
  0 bytes consed
  
T

; This shows that the timers are all scheduled.

EXERCISE-TIMERS> (time (whence-rescheduling-timers))
Evaluation took:
  0.000 seconds of real time
  0.000000 seconds of total run time (0.000000 user, 0.000000 system)
  100.00% CPU
  604,034 processor cycles
  0 bytes consed
  
(5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4)

; This shows that the timer callback functions have all been run within the
; last 5 seconds, give or take.

; When a failure occurs, it looks like:

TIMER-TESTS> (time (whence-rescheduling-timers))
Evaluation took:
  0.000 seconds of real time
  0.000000 seconds of total run time (0.000000 user, 0.000000 system)
  100.00% CPU
  417,941 processor cycles
  0 bytes consed
  
(4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207
 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207
 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4207 4212 4212 4212
 4207 4212 4212 4212 4212 4207 4212 4212 4212 4212 4207 4207 4212 4212 4212
 4212 4207 4207 4207 4207 4207 4212 4212 4207 4207 4212 4207 4212 4212 4212
 4207 4212 4212 4207 4212 4212 4212 4212 4207 4212 4207 4212 4212 4207 4207
 4207 4212 4207 4212 4212 4207 4207 4207 4212 4212)

; Here, I'd left the test to run for a couple of hours.  Clearly all the timers
; are long overdue to execute.  

TIMER-TESTS> (time (check-rescheduling-timers))
Evaluation took:
  0.000 seconds of real time
  0.000000 seconds of total run time (0.000000 user, 0.000000 system)
  100.00% CPU
  52,135 processor cycles
  0 bytes consed
  
T

; And yet they're all still scheduled; this is apparently because they're
; set to recur.

TIMER-TESTS> (aref *last-ran* 0)
@2012-05-03T18:45:43.415445-04:00

; This timestamp was a little over an hour earlier, as the values in the range
; 4207-4212 suggest.
