View source: R/core_api-reset.R
reset | R Documentation |
A future that has successfully completed, has been interrupted, or failed due to an error, can be relaunched after resetting it.
reset(x, ...)
x |
A Future. |
... |
Not used. |
A lazy, vanilla Future can be reused in another R session. For instance, if we do:
library(future) a <- 2 f <- future(42 * a, lazy = TRUE) saveRDS(f, "myfuture.rds")
Then we can read and evaluate the future in another R session using:
library(future) f <- readRDS("myfuture.rds") v <- value(f) print(v) #> [1] 84
reset()
returns a lazy, vanilla Future that can be relaunched.
Resetting a running future results in a FutureError.
## Like mean(), but fails 90% of the time
shaky_mean <- function(x) {
if (as.double(Sys.time()) %% 1 < 0.90) stop("boom")
mean(x)
}
x <- rnorm(100)
## Calculate the mean of 'x' with a risk of failing randomly
f <- future({ shaky_mean(x) })
## Relaunch until success
repeat({
v <- tryCatch(value(f), error = identity)
if (!inherits(v, "error")) break
message("Resetting failed future, and retry in 0.1 seconds")
f <- reset(f)
Sys.sleep(0.1)
})
cat("mean:", v, "\n")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.