exit_call: Call 'on.exit()' in a parent function

Description Usage Arguments References Examples

View source: R/utils.R

Description

The function on.exit() is often used to perform tasks when the current function exits. This exit_call() function allows calling a function when a parent function exits (thinking of it as inserting an on.exit() call into the parent function).

Usage

1
exit_call(fun, n = 2, ...)

Arguments

fun

A function to be called when the parent function exits.

n

The parent frame number. For n = 1, exit_call(fun) is the same as on.exit(fun()); n = 2 means adding on.exit(fun()) in the parent function; n = 3 means the grandparent, etc.

...

Other arguments to be passed to on.exit().

References

This function was inspired by Kevin Ushey: https://yihui.org/en/2017/12/on-exit-parent/

Examples

1
2
3
4
5
6
7
8
9
f = function(x) {
    print(x)
    xfun::exit_call(function() print("The parent function is exiting!"))
}
g = function(y) {
    f(y)
    print("f() has been called!")
}
g("An argument of g()!")

xfun documentation built on June 16, 2021, 1:07 a.m.