You should look into how go manages goroutines. It is indeed 2kib stacks by default without the need for guard pages. They use a different mechanism to determine overflows. Other runtimes can do similar things.
Aha, yeah. It utilizes the compiler to insert guards at each function prologue, determining the remaining stack size.
Aha, yeah. It utilizes the compiler to insert guards at each function prologue, determining the remaining stack size.