smp: Check for SIGCHLD in thread timer interrupt handler.
authorMatt Birkholz <puck@birchwood-abbey.net>
Sat, 20 Dec 2014 16:15:03 +0000 (09:15 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Sun, 21 Dec 2014 19:19:09 +0000 (12:19 -0700)
commit3b4bc23f80435895ec1d3b9ca6c0c20f1afb4b59
treeda4faaf7722d15017cdeb645931ee39b9f36367d
parent425b1522d5df54aaf80eaf47a007cf9600b405d5
smp: Check for SIGCHLD in thread timer interrupt handler.

An idle thread might get a SIGCHLD, wake and run the thread timer
interrupt handler (since there is no subprocess-status-change
interrupt) and return to idle.  If it is not the io-waiter, it does
not call test-select-registry nor otherwise notice the subprocess
status change.

Funnel all status change notifications through handle-subprocess-
status-change.  It uses the last-global-tick variable to remember the
tick when threads blocking on status changes were last woken.
src/runtime/process.scm
src/runtime/runtime.pkg
src/runtime/thread.scm