Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How?


By analyzing mutators activity. Only the compacting GCs have to stop the world.


Unsure 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


Mutators 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


I 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?


You can watch Herb Sutter talk about deferred_ptr: https://youtu.be/JfmTagWcqoE


But how can it Markit as dead as the mutatorthread runs?

It must stop the thread surely?


SGCL never stops the threads.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: