Как работает stack copying?

Senior
199 просмотров
AFK Offer AI

Когда горутине нужно больше стека, рантайм выделяет новый в 2 раза больше, побайтово копирует содержимое старого стека и обновляет все указатели на стек. Указатели обновляются потому что адреса изменились — рантайм знает layout стека и может найти все pointer-содержащие слоты. После копирования старый стек освобождается. Это безопасно только потому что Go точно знает, где на стеке лежат указатели благодаря информации от компилятора (stack maps).

Следующий вопрос

Что такое plugin package?