Learn R Programming

statnet.common (version 4.10.0)

forkTimeout: Evaluate an R expression with a hard time limit by forking a process

Description

This function uses parallel::mcparallel(), parallel::mcparallel(), so the time limit is not enforced on Windows. However, unlike functions using setTimeLimit(), the time limit is enforced even on native code.

Usage

forkTimeout(
  expr,
  timeout,
  unsupported = c("warning", "error", "message", "silent"),
  onTimeout = NULL
)

Value

Result of evaluating expr if completed, onTimeout

otherwise.

Arguments

expr

expression to be evaluated.

timeout

number of seconds to wait for the expression to evaluate.

unsupported

a character vector of length 1 specifying how to handle a platform that does not support parallel::mcparallel(), parallel::mcparallel(),

"warning" or "message"

Issue a warning or a message, respectively, then evaluate the expression without the time limit enforced.

"error"

Stop with an error.

"silent"

Evaluate the expression without the time limit enforced, without any notice.

Partial matching is used.

onTimeout

Value to be returned on time-out.

Examples

Run this code

forkTimeout({Sys.sleep(1); TRUE}, 2) # TRUE
forkTimeout({Sys.sleep(1); TRUE}, 0.5) # NULL (except on Windows)

Run the code above in your browser using DataLab