Add register-gc-event, deregister-gc-event, registered-gc-event.
authorMatt Birkholz <puck@birchwood-abbey.net>
Tue, 18 Aug 2015 00:19:15 +0000 (17:19 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Thu, 26 Nov 2015 07:59:18 +0000 (00:59 -0700)
commit7ebb84bb87e94611395e27882668ed043dad655a
tree2e0f8043ec3db498b1d32cf08c5ca94187b5ea96
parent05dd4d4d5069bef09916d6fd534d8272ef66c457
Add register-gc-event, deregister-gc-event, registered-gc-event.

Punt the hook/record-statistic! fluid.  With-gc-notification now uses
dynamic-wind to register and deregister a GC thread event for the
current thread.

Do not use ANY fluid state (e.g. nearest-cmdl/port) during a GC.  Use
the console-i/o-port in hook/gc-start and hook/gc-finish.  GCs can
happen in the thread system when there is no current thread.

The fluid state IS defined during the GC thread events.  At the start
of such events, signal a REPL abort if the heap is low.
src/runtime/gc.scm
src/runtime/gcnote.scm
src/runtime/gcstat.scm
src/runtime/make.scm
src/runtime/runtime.pkg
src/runtime/thread.scm