> * Objects in the borrowed set are grayed before each incremental GC slice.
>

*mutator*

In a 
garbage-collected<http://www.memorymanagement.org/glossary/g.html#garbage.collection>
system,
the part that executes the user code, which
allocates<http://www.memorymanagement.org/glossary/a.html#allocate>
 objects <http://www.memorymanagement.org/glossary/o.html#object> and
modifies, or *mutates*, them.

For purposes of describing incremental garbage
collection<http://www.memorymanagement.org/glossary/i.html#incremental.garbage.collection>,
the system is divided into the *mutator* and the
*collector(2)<http://www.memorymanagement.org/glossary/c.html#collector-2>
*. These can be separate threads of computation, or interleaved within the
same thread.

The user code issues allocation requests, but the allocator code is usually
considered part of the collector. Indeed, one of the major ways of
scheduling the other work of the collector is to perform a little of it at
every allocation.

While the mutator mutates, it implicitly
frees<http://www.memorymanagement.org/glossary/f.html#free-1>
 storage <http://www.memorymanagement.org/glossary/s.html#storage> by
overwriting 
references<http://www.memorymanagement.org/glossary/r.html#reference>
.

How will Rust deal with the mutator (the part that modifies user code and
mutates it ) ?  From a high level, will it be run as separate computation
threads or within the same computation thread ?

-- 
-Thad
Thad on Freebase.com <http://www.freebase.com/view/en/thad_guidry>
Thad on LinkedIn <http://www.linkedin.com/in/thadguidry/>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to