to the top of the stack of cleanup handlers that
get called when the current thread exits.
is called, it is passed
as its only argument.
function is implemented as a macro that opens a new block.
Invocations of this function must appear as standalone statements that are
paired with a later call of
in the same lexical scope.