Great post! One question that lingered for me is: what are asynchronous safe-points? The post goes into some detail about their synchronous counterparts
// 3. Asynchronous safe-points occur at any instruction in user code
// where the goroutine can be safely paused and a conservative
// stack and register scan can find stack roots. The runtime can
// stop a goroutine at an async safe-point using a signal.
Here's `isAsyncSafePoint`: https://github.com/golang/go/blob/d36353499f673c89a267a489be...
edit: The comments at the top of that file say: