Learn R Programming

future (version 1.67.0)

cancel: Cancel a future

Description

Cancels futures, with the option to interrupt running ones.

Usage

cancel(x, interrupt = TRUE, ...)

Value

cancel() returns (invisibly) the canceled Futures after flagging them as "canceled" and possibly interrupting them as well.

Canceling a lazy or a finished future has no effect.

Arguments

x

A Future.

interrupt

If TRUE, running futures are interrupted, if the future backend supports it.

...

All arguments used by the S3 methods.

See Also

A canceled future can be reset() to a lazy, vanilla future such that it can be relaunched, possible on another future backend.

Examples

Run this code
## Set up two parallel workers
plan(multisession, workers = 2)

## Launch two long running future
fs <- lapply(c(1, 2), function(duration) {
  future({
    Sys.sleep(duration)
    42
  })
})

## Wait until at least one of the futures is resolved
while (!any(resolved(fs))) Sys.sleep(0.1)

## Cancel the future that is not yet resolved
r <- resolved(fs)
cancel(fs[!r])

## Get the value of the resolved future
f <- fs[r]
v <- value(f)
message("Result: ", v)

## The value of the canceled future is an error
try(v <- value(fs[!r]))

## Shut down parallel workers
plan(sequential)

Run the code above in your browser using DataLab