racket/racket
Matthew Flatt 8305e5eaef Chez Scheme: parallel garbage collection
All allocation is now thread-local, which recovers a small bit of
performance that was lost when adding thread-local allocation
alongside global allocation.

Parallelism uses thread contexts created by Chez Scheme threads (which
correspond to Racket places and future-running threads), but it
creates its own OS-level threads to perform collection. The number of
collection-helper threads is limited to the number of active Chez
Scheme threads. Only the main "sweep" pass runs in parallel --- that
is, after roots have been traversed, and before weak references and
finalization are handled --- but that's the bulk of collection work.
Also, memory-accounting collections always run as single-threaded.
2020-09-15 07:40:13 -06:00
..
collects datum: always force promise 2020-09-02 20:21:44 +02:00
src Chez Scheme: parallel garbage collection 2020-09-15 07:40:13 -06:00
.gitignore internal hooks to build "Racket.exe" without "libracket3m.dll" 2015-03-28 09:50:01 -06:00