Why does the @golang garbage collector pause all threads to scan the stack? Why not pin stack objects and go 100% nonblocking?
-
-
Replying to @TimSweeneyEpic @golang
How do you know what to pin? You need a snapshot of all the thread's stacks, or a conservative approximation. Doing that w/o blocking needs a *stack* write barrier. Just taking consecutive snapshots could lose a root that moved from stack #2 to stack #1.
2 replies 0 retweets 0 likes -
That problem is also the essence of safe memory reclamation for non-blocking algorithms. A low-overhead 100% non-blocking stack pinning scheme would also be a fast replacement for hazard pointers.
1 reply 0 retweets 1 like
Right, I’ve been fooling around with a 100% nonblocking garbage collector layered onto C++, and it’s surprisingly simple with stack pinning.
6:16 PM - 4 Oct 2017
0 replies
0 retweets
1 like
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.