News for hackers. Stuff that matters.
Re:A Tour of Safe Tracing GC Designs in Rust by kgeist on Saturday June 19, 2021 @08:41AM (#27559963)
>In Go, the compiler needs to automatically insert code that checks the “pulse” of the heap every now and then, and potentially runs garbage collection. It also needs to automatically insert code that can tell the scheduler “hey now is a safe time to interrupt me if a different goroutine wishes to run”

Is it still the case after Go 1.14 (February 2020) when asynchronous preemption was implemented? As far as I know, goroutines are now preempted using signals instead of inserting checks at every function call.

Re:A Tour of Safe Tracing GC Designs in Rust by uluyol on Saturday June 19, 2021 @09:38AM (#27560370)
The signal based mechanism is only used for stragglers.

Go still uses the function call check. The runtime devs found a way to combine it with a check to see if the goroutine's stack needs to be resized, so it doesn't actually cost anything.