Skip to content

Commit 068f6d0

Browse files
Support globals = NULL
1 parent 360fda7 commit 068f6d0

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
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-9137
2+
Version: 1.34.0-9138
33
Title: Unified Parallel and Distributed Processing in R for Everyone
44
Imports:
55
digest,

R/backend_api-Future-class.R

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,22 +126,25 @@ Future <- function(expr = NULL, envir = parent.frame(), substitute = TRUE, stdou
126126
args_names <- names(args)
127127

128128
## WORKAROUND: Skip scanning of globals if already done /HB 2021-01-18
129-
if (!inherits(globals, "Globals") ||
130-
!isTRUE(attr(globals, "already-done", exact = TRUE))) {
131-
## Global objects?
132-
## 'persistent' is only allowed for ClusterFuture:s, which will be
133-
## asserted when run() is called /HB 2023-01-17
134-
gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals, persistent = isTRUE(args$persistent))
135-
globals <- gp$globals
136-
expr <- gp$expr
137-
138-
## Record packages?
139-
if (length(packages) > 0 || (length(gp$packages) > 0 && lazy)) {
140-
packages <- c(gp$packages, packages)
141-
}
129+
if (!is.null(globals)) {
130+
if (!inherits(globals, "Globals") ||
131+
!isTRUE(attr(globals, "already-done", exact = TRUE))) {
132+
## Global objects?
133+
## 'persistent' is only allowed for ClusterFuture:s, which will be
134+
## asserted when run() is called /HB 2023-01-17
135+
gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals, persistent = isTRUE(args$persistent))
136+
globals <- gp$globals
137+
expr <- gp$expr
142138

143-
gp <- NULL
139+
## Record packages?
140+
if (length(packages) > 0 || (length(gp$packages) > 0 && lazy)) {
141+
packages <- c(gp$packages, packages)
142+
}
143+
144+
gp <- NULL
145+
}
144146
}
147+
145148
if (length(packages) > 1L) packages <- unique(packages)
146149

147150
with_assert({

R/core_api-future.R

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -191,15 +191,17 @@ future <- function(expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE
191191
if (substitute) expr <- substitute(expr)
192192
t_start <- Sys.time()
193193

194-
gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals)
195-
expr <- gp$expr
196-
globals <- gp$globals
197-
## Record packages?
198-
if (length(packages) > 0 || length(gp$packages) > 0) {
199-
packages <- c(gp$packages, packages)
194+
if (!is.null(globals)) {
195+
gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals)
196+
expr <- gp$expr
197+
globals <- gp$globals
198+
## Record packages?
199+
if (length(packages) > 0 || length(gp$packages) > 0) {
200+
packages <- c(gp$packages, packages)
201+
}
202+
gp <- NULL
203+
attr(globals, "already-done") <- TRUE
200204
}
201-
gp <- NULL
202-
attr(globals, "already-done") <- TRUE
203205

204206
future <- Future(expr, substitute = FALSE,
205207
envir = envir,

0 commit comments

Comments
 (0)