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, 6 Jul 2015 05:45:44 +0000 (22:45 -0700)
commit1b69fd6a7481df1d0d86db3f953c68014e973caf
tree6d76f9fa134a2c4e9293725a6a61dd7279996706
parente13efacf59e67849d23002fcd05a928052c5a5ea
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