4 ms·
By analyzing mutators activity. Only the compacting GCs have to stop the world.
by pebal 4y ago
By analyzing mutators activity. Only the compacting GCs have to stop the world.
- worik 4y agoUnsure what you mean by "mutators". I am guessing "pointers that can be used to modify data at a memory address" If so, how can you (as a GC) be sure that while you were adding up all the pointers to an address, and finding none, that another one was not made? Mystified
- pebal 4y agoMutators are threads that allocate memory and manipulate pointers, they can work completely independently of the GC. A mutator needs only to tag an object when copies or moves a pointer to this object. The GC detects this tag and marks the object as alive. Here is a working implementation for C++: https://github.com/pebal/sgcl https://github.com/pebal/sgcl
- aliqot 4y agoI could listen to you or whoever talk about this all day. Just on the chance you know a good one, do you know any good conference talks or podcasts I can listen to on the same topic?
- pebal 4y agoYou can watch Herb Sutter talk about deferred_ptr: https://youtu.be/JfmTagWcqoE https://youtu.be/JfmTagWcqoE
- worik 4y agoBut how can it Markit as dead as the mutatorthread runs? It must stop the thread surely?
- pebal 4y agoSGCL never stops the threads.