Gancho de Encerramento
Nesta página
O bloco on shutdown é o equivalente Zolo de um destrutor de processo: ele roda
quando o programa termina normalmente, quando process.exit é chamado
explicitamente, ou quando o processo recebe um sinal que encerra a execução.
O parâmetro reason (opcional) recebe uma string descrevendo a causa —
"normal" para saída limpa.
O gancho dispara após process.exit(0) — o print("unreachable") jamais é
executado. Rode no seu ambiente local para ver a ordem das mensagens.
// Verifies `on shutdown` fires when `process.exit` is called explicitly.
use std::process
on shutdown reason {
print("shutdown reason: {reason}")
}
print("before exit")
process.exit(0)
print("unreachable")
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
O bloco é registrado na ordem em que aparece no código, mas executado em ordem inversa (LIFO) quando há múltiplos ganchos — o mais próximo do fim do arquivo roda primeiro, permitindo que camadas internas se limpem antes das externas.
Desafio
Remova o argumento reason do on shutdown e verifique que o bloco ainda
compila e dispara. Em seguida, adicione um segundo on shutdown antes do
primeiro e observe a ordem de execução.
Veja também