diff --git a/scheduler.scm b/scheduler.scm index f89805f..4d95ef6 100644 --- a/scheduler.scm +++ b/scheduler.scm @@ -266,7 +266,10 @@ EOF (lambda (reason state) (when (fx= reason 255) ; C_TIMER_INTERRUPT_NUMBER (let ([ct ##sys#current-thread]) - (##sys#setslot ct 1 (lambda () (oldhook reason state))) + (##sys#setslot ct 1 (lambda () + (let ((old-blockobj (##sys#slot ct 11))) + (oldhook reason state) + (set! (##sys#slot ct 11) old-blockobj)))) (##sys#schedule) ) ) ; expected not to return! (oldhook reason state) ) ) )