Skip to content

Commit 6645fd7

Browse files
Multicore- and UniprocessFuture assign globals themselves; don't pass globals to evalFuture()
1 parent ced06c5 commit 6645fd7

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: future
2-
Version: 1.34.0-9107
2+
Version: 1.34.0-9109
33
Title: Unified Parallel and Distributed Processing in R for Everyone
44
Imports:
55
digest,

R/Future-class.R

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -662,9 +662,10 @@ getExpression.Future <- local({
662662
future:::evalFuture(core = .(core), capture = .(capture), context = .(context), split = .(split), immediateConditionClasses = .(immediateConditionClasses), forwardOptions = .(forwardOptions), local = .(local), cleanup = .(cleanup))
663663
})
664664

665-
function(future, expr = future$expr, immediateConditions = FALSE, threads = NA_integer_, cleanup = TRUE, ...) {
665+
function(future, expr = future$expr, immediateConditions = FALSE, threads = NA_integer_, ..., cleanup = TRUE) {
666666
debug <- getOption("future.debug", FALSE)
667667
## mdebug("getExpression() ...")
668+
args <- list(...)
668669

669670
local <- future$local
670671
split <- future$split
@@ -710,9 +711,11 @@ getExpression.Future <- local({
710711
}
711712

712713
## Create a future core
714+
globals <- args$globals
715+
if (is.null(globals)) globals <- globals(future)
713716
core <- list(
714717
expr = expr,
715-
globals = globals(future),
718+
globals = globals,
716719
packages = pkgs,
717720
seed = future$seed
718721
)
@@ -770,7 +773,7 @@ getExpression.Future <- local({
770773
width = getOption("width")
771774
)
772775

773-
mc.cores <- list(...)$mc.cores
776+
mc.cores <- args$mc.cores
774777
if (!is.null(mc.cores)) {
775778
forwardOptions$mc.cores <- mc.cores
776779
}

R/MulticoreFuture-class.R

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,16 @@ run.MulticoreFuture <- function(future, ...) {
4848

4949
mcparallel <- importParallel("mcparallel")
5050

51-
expr <- getExpression(future)
51+
expr <- getExpression(future, globals = list())
5252
envir <- future$envir
53+
envir <- new.env(parent = envir)
5354

5455
t_start <- Sys.time()
5556

5657
## Assign globals
57-
envir <- new.env(parent = envir)
58-
if (length(future$globals) > 0L) {
59-
envir <- assign_globals(envir, globals = future$globals)
58+
globals <- future$globals
59+
if (length(globals) > 0L) {
60+
envir <- assign_globals(envir, globals = globals)
6061
}
6162

6263
## Get a free worker

R/UniprocessFuture-class.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ run.UniprocessFuture <- function(future, ...) {
3333
## also the one that evaluates/resolves/queries it.
3434
assertOwner(future)
3535

36-
expr <- getExpression(future)
36+
expr <- getExpression(future, globals = list())
3737
envir <- future$envir
3838
envir <- new.env(parent = envir)
3939

0 commit comments

Comments
 (0)