Get the future of a future variable that has been created directly
or indirectly via future()
.
Usage
futureOf(
var = NULL,
envir = parent.frame(),
mustExist = TRUE,
default = NA,
drop = FALSE
)
Arguments
- var
the variable. If NULL, all futures in the environment are returned.
- envir
the environment where to search from.
- mustExist
If TRUE and the variable does not exists, then an informative error is thrown, otherwise NA is returned.
- default
the default value if future was not found.
- drop
if TRUE and
var
is NULL, then returned list only contains futures, otherwise alsodefault
values.
Value
A Future (or default
).
If var
is NULL, then a named list of Future:s are returned.
Examples
a %<-% { 1 }
f <- futureOf(a)
print(f)
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 1
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
b %<-% { 2 }
f <- futureOf(b)
print(f)
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 2
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
## All futures
fs <- futureOf()
print(fs)
#> $a
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 1
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#>
#> $b
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 2
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#>
#> $f
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 2
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#>
## Futures part of environment
env <- new.env()
env$c %<-% { 3 }
f <- futureOf(env$c)
print(f)
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 3
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
f2 <- futureOf(c, envir = env)
print(f2)
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 3
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
f3 <- futureOf("c", envir = env)
print(f3)
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 3
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
fs <- futureOf(envir = env)
print(fs)
#> $c
#> SequentialFuture:
#> Label: NULL
#> Expression:
#> {
#> 3
#> }
#> Lazy evaluation: FALSE
#> Asynchronous evaluation: TRUE
#> Local evaluation: TRUE
#> Environment: 0x5bf453997e88
#> Capture standard output: TRUE
#> Capture condition classes: ‘condition’ (excluding ‘<none>’)
#> Immediate condition classes: ‘immediateCondition’
#> Globals: <none>
#> Packages: <none>
#> L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
#> State: finished
#> Resolved: TRUE
#> Value: 39 bytes of class ‘numeric’
#> Early signaling: FALSE
#> Owner process: 2a4f540bb5774f8bb57c80bd0aaa931a
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#>