Define make-thread-mutex early.
authorMatt Birkholz <puck@birchwood-abbey.net>
Wed, 17 Jun 2015 03:03:56 +0000 (20:03 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Mon, 17 Aug 2015 23:52:58 +0000 (16:52 -0700)
commit65d2d32dc13779bdebc5bcba37224cde73468ee6
tree47135dcbc03ce12e125c7de1c9e99f6de95db6a5
parent20b819c42a04c8fa81725178fc9c61a11a0e3979
Define make-thread-mutex early.

Global data structures like event-distributors and gc-daemon queues
need to serialize operations and could use thread mutexes except that
they are naturally created early in the cold load, before the thread
system is loaded.  So the mutex data structure is defined (withOUT
define-structure syntax) in a new file: runtime/thread-low.scm.  The
rest of thread.scm must be loaded after record.scm.

This breaks the circularity where thread system initialization
requires population and 1d-table operations which are serialized by
the thread system.
src/runtime/make.scm
src/runtime/runtime.pkg
src/runtime/thread-low.scm [new file with mode: 0644]
src/runtime/thread.scm