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