After 3 months of coding weekends, my attempt to create a relocating nonblocking garbage collector in C++ has failed. It works in theory, but in practice the read barrier is pervasive and costly, and the threading invariants are incredibly tricky to maintain.
My understanding of .NET: mutator threads can run during some parts of GC but not during the stop-the-world stack scanning and relocation phase. For that, it has to pause all threads.
-
-
There seems to be some conflicting and unclear information out there... This seems like a good resource https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals … . There’s a distinction between the foreground collection and just background collection. Foreground halts all managed threads
-
Foreground collection is the combination of the background collect (gen 2) and ephemeral one (gen 0 and 1)
End of conversation
New conversation -
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.