Что происходит когда горутина делает syscall?

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

При блокирующем syscall runtime делает sysmon handoff: забирает P у текущего M и отдаёт его свободному или новому потоку. Горутина остаётся привязанной к заблокированному M. Когда syscall завершается, горутина пытается найти свободный P. Если P нет — горутина идёт в глобальную очередь. Это позволяет не блокировать выполнение остальных горутин.

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

Как ты обеспечиваешь backward compatibility при изменениях API?