add one more reference for the tri-color gc algorithm #261
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was really confused about the question raised in this article (Memory Blocks): "why the algorithm uses three colors instead of two colors". So I spent some time searching for comprehensive answers, during which I found this Stack Overflow question.
Not only this question itself cover many aspects of the tri-color GC algorithm, the answer also elaborate some details which are not discussed in other articles. Consequently, it may be helpful for future readers to include this question as another reference.
Initially I planned to add more contents directly to this article, but as I'm not expert at the GC design and implementation, I may introduce some false information and mislead others. It's bad.
I may guess the reason why you introduced only two references from Go official docs and codes here, but I still think adding this (or even other) reference would help readers who have little knowledge about the GC before (like me).