pub fn maybe_grow<R, F: FnOnce() -> R>(
    red_zone: usize,
    stack_size: usize,
    callback: F
) -> R
Expand description

Grows the call stack if necessary.

This function is intended to be called at manually instrumented points in a program where recursion is known to happen quite a bit. This function will check to see if we’re within red_zone bytes of the end of the stack, and if so it will allocate a new stack of at least stack_size bytes.

The closure f is guaranteed to run on a stack with at least red_zone bytes, and it will be run on the current stack if there’s space available.