1.0.15.20: refactor "system locks" framework, one TIMER buglet
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Mar 2008 18:32:45 +0000 (18:32 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Mar 2008 18:32:45 +0000 (18:32 +0000)
commit068cf4b55af3f8f8acf2c7c06869441612261cd4
treef5a2ecc641f3faf39fe3ed5db0b0983d81b606a0
parent16028d14234d2acd0e6a3145a7364f2a52eabf63
1.0.15.20: refactor "system locks" framework, one TIMER buglet

 * Choose the degree of GC/interrupt suppression at compile-time.

 * Default is not to allow interrupts at all, callers which need
   WITH-INTERRUPTS to work can now specify :ALLOW-WITH-INTERRUPTS.

 * Should fix reported Stumpwm crashes due to attempts to recursively
   obtain *SCHEDULER-LOCK*. (Caused by SIGALRM interrupting GET-MUTEX
   inside the call to %TIMER-CANCEL-FUNCTION, which led to recursive
   entry to WITH-SCHEDULER-LOCK.)

 * Don't reschedule timers for dead threads.

 * Three new test-cases for timers, which (1) represent my failing
   attempts to trigger the Stumpwm bug described above (2) led to
   noticing the rescheduling promblem (3) fail horribly on OS X Tiger
   -- not sure if this is our or Darwin's problem...
src/code/fd-stream.lisp
src/code/final.lisp
src/code/run-program.lisp
src/code/target-thread.lisp
src/code/thread.lisp
src/code/timer.lisp