Nothing
source("incl/start.R")
message("*** BatchtoolsFutureError() ...")
plan(batchtools_local)
for (cleanup in c(FALSE, TRUE)) {
mprintf("*** batchtools future error w/ future.delete = %s ...\n", cleanup)
options(future.delete = cleanup)
f <- future({
x <- 1
print(x)
stop("Woops!")
})
resolve(f)
## Assert future is listed as resolved
stopifnot(resolved(f))
reg <- f$config$reg
## Force garbage collection of future which will possibly
## result in the removal of batchtools registry files
reg.finalizer(f, function(f) {
message("Garbage collecting future ...")
print(f)
message("Garbage collecting future ... DONE")
}, onexit = TRUE)
rm(list = "f")
gc()
message(" - Future removed and garbage collected.")
mprintf(" - batchtools Registry path (%s) exists: %s\n",
sQuote(reg$file.dir), file_test("-d", reg$file.dir))
## Assert removal of files only happens if there was not
## a failure and option future.delete is not TRUE.
if (!cleanup) {
## FIXME: Does the new future::FutureResult trigger garbage collection?
stopifnot(file_test("-d", reg$file.dir))
log <- batchtools::getLog(reg = reg, id = 1L)
print(log)
## Now manually delete batchtools Registry
batchtools::removeRegistry(wait = 0.0, reg = reg)
}
stopifnot(!file_test("-d", reg$file.dir))
mprintf("*** batchtools future error w/ future.delete = %s ... DONE\n", cleanup)
} ## for (cleanup ...)
message("*** BatchtoolsFuture - expired ...")
plan(batchtools_local)
msg <- "Abruptly terminating the future!"
f <- future({
cat(file = stderr(), msg)
quit(save = "no")
})
res <- tryCatch({
v <- value(f)
}, error = identity)
stopifnot(inherits(res, "error"),
inherits(res, "FutureError"))
err_msg <- unlist(strsplit(conditionMessage(res), split = "\n", fixed = TRUE))
stopifnot(any(grepl(msg, err_msg, fixed = TRUE)))
message("*** BatchtoolsFuture - expired ... done")
if (fullTest) {
message("*** BatchtoolsFuture - deleting running ...")
plan(batchtools_multicore)
f <- future({
Sys.sleep(2)
42L
})
if (!resolved(f)) {
res <- delete(f, onRunning = "skip")
stopifnot(isTRUE(res))
}
if (!resolved(f)) {
res <- tryCatch({
delete(f, onRunning = "warning")
}, warning = function(w) w)
stopifnot(inherits(res, "warning"))
}
if (!resolved(f)) {
res <- tryCatch({
delete(f, onRunning = "error")
}, error = function(ex) ex)
stopifnot(inherits(res, "error"))
}
message("*** BatchtoolsFuture - deleting running ... DONE")
} ## if (fullTest)
message("*** BatchtoolsFutureError() ... DONE")
source("incl/end.R")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.