evalWithTimeout
From R.utils v1.7.3
by Henrik Bengtsson
Evaluate an R expression and interrupts it if it takes too long
Evaluate an R expression and interrupts it if it takes too long.
- Keywords
- programming, IO
Usage
evalWithTimeout(..., envir=parent.frame(), timeout, cpu=timeout, elapsed=timeout, onTimeout=c("error", "warning", "ignore"))
Arguments
- ...
- The R expression to be evaluated as passed
to
eval
(). - envir
- The
environment
in which the expression should be evaluated. - timeout, cpu, elapsed
- A
numeric
specifying the maximum number of seconds the expression is allowed to run before being interrupted by the timeout. Thecpu
andelapsed
arguments can b - onTimeout
- A
character
specifying what action to take if a timeout event occurs.
Value
- Returns the results of the expression evaluated,
or
NULL
ifonTimeout="warning"
and a timeout event occured.
References
[1] R help thread 'Time out for a R Function' on 2010-12-06.
See Also
Examples
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Function that takes "a long" time to run
# - - - - - - - - - - - - - - - - - - - - - - - - -
foo <- function() {
print("Tic");
for (kk in 1:100) {
print(kk);
Sys.sleep(0.1);
}
print("Tac");
}
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Evaluate code, if it takes too long, generate
# a timeout by throwing a TimeoutException.
# - - - - - - - - - - - - - - - - - - - - - - - - -
res <- NULL;
tryCatch({
res <- evalWithTimeout({
foo();
}, timeout=1.08);
}, TimeoutException=function(ex) {
cat("Timeout. Skipping.
");
})
# - - - - - - - - - - - - - - - - - - - - - - - - -
# Evaluate code, if it takes too long, generate
# a timeout returning NULL and generate a warning.
# - - - - - - - - - - - - - - - - - - - - - - - - -
res <- evalWithTimeout({
foo();
}, timeout=1.08, onTimeout="warning");
Community examples
Looks like there are no examples yet.