Nothing
source("incl/start.R")
library("batchtools")
library("listenv")
message("*** batchtools_custom() ...")
message("*** batchtools_custom() w/ 'conf.file' on R_BATCHTOOLS_SEARCH_PATH")
f <- batchtools_custom({
42L
})
print(f)
stopifnot(inherits(f, "BatchtoolsFuture"))
v <- value(f)
print(v)
stopifnot(v == 42L)
message("*** batchtools_custom() w/ 'cluster.functions' without globals")
cf <- makeClusterFunctionsInteractive(external = TRUE)
str(cf)
f <- batchtools_custom({
42L
}, cluster.functions = cf)
stopifnot(inherits(f, "BatchtoolsFuture"))
## Check whether a batchtools_custom future is resolved
## or not will force evaluation
print(is_resolved <- resolved(f))
stopifnot(is_resolved)
y <- value(f)
print(y)
stopifnot(y == 42L)
message("*** batchtools_custom() w/ 'cluster.functions' with globals")
## A global variable
a <- 0
f <- batchtools_custom({
b <- 3
c <- 2
a * b * c
}, cluster.functions = cf)
print(f)
## Although 'f' is a batchtools_custom future and therefore
## resolved/evaluates the future expression only
## when the value is requested, any global variables
## identified in the expression (here 'a') are
## "frozen" at the time point when the future is
## created. Because of this, 'a' preserved the
## zero value although we reassign it below
a <- 7 ## Make sure globals are frozen
v <- value(f)
print(v)
stopifnot(v == 0)
message("*** batchtools_custom() w/ 'cluster.functions' with globals (tricky)")
x <- listenv()
for (ii in 1:2) {
x[[ii]] <- batchtools_custom({ ii }, globals = TRUE, cluster.functions = cf)
}
v <- unlist(value(x))
stopifnot(all(v == 1:2)) ## Make sure globals are frozen
message("*** batchtools_custom() w/ 'cluster.functions' and errors")
f <- batchtools_custom({
stop("Whoops!")
1
}, cluster.functions = cf)
v <- value(f, signal = FALSE)
print(v)
stopifnot(inherits(v, "simpleError"))
res <- try({ v <- value(f) }, silent = TRUE)
print(res)
stopifnot(inherits(res, "try-error"))
## Error is repeated
res <- try(value(f), silent = TRUE)
print(res)
stopifnot(inherits(res, "try-error"))
message("*** batchtools_custom() ... 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.