X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftimer.lisp;h=065b4c22e6e6007733b14b4a7d5ad19eba787472;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=b84168a1147ec33d5d60ae26ee9310999a0aabcd;hpb=80356ce0ff12379e93a9df74dd65433c415f7aae;p=sbcl.git diff --git a/src/code/timer.lisp b/src/code/timer.lisp index b84168a..065b4c2 100644 --- a/src/code/timer.lisp +++ b/src/code/timer.lisp @@ -363,6 +363,11 @@ triggers." (when (or (null timer) (< (get-internal-real-time) (%timer-expire-time timer))) + ;; Seemingly this is a spurious SIGALRM, but play it safe and + ;; reset the system timer because if the system clock was set + ;; back after the SIGALRM had been delivered then we won't get + ;; another chance. + (set-system-timer) (return-from run-expired-timers nil)) (assert (eq timer (priority-queue-extract-maximum *schedule*))) (set-system-timer))