Как работает runtime.KeepAlive и зачем нужен?

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

KeepAlive(x) гарантирует что x не будет собран GC до этой точки в коде. Нужен когда передаёшь указатель в C через cgo или syscall — GC может собрать объект пока C код его использует. KeepAlive — это no-op в рантайме, но compiler marker. Без него финализер может сработать до завершения cgo вызова.

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

Что такое resumable upload?