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: <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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-12
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003010988 secs (started 2025-10-15 15:05:14.380754)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-13
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003113747 secs (started 2025-10-15 15:05:14.393808)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
## 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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-12
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003010988 secs (started 2025-10-15 15:05:14.380754)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
#>
#> $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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-13
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003113747 secs (started 2025-10-15 15:05:14.393808)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
#>
#> $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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-13
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003113747 secs (started 2025-10-15 15:05:14.393808)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
#>
## 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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-14
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003286839 secs (started 2025-10-15 15:05:14.409872)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-14
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003286839 secs (started 2025-10-15 15:05:14.409872)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-14
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003286839 secs (started 2025-10-15 15:05:14.409872)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
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: 0x55bf16787b10
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 84dc3ead60e3d967e3734575025457a4-14
#> Owner process: 84dc3ead60e3d967e3734575025457a4
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003286839 secs (started 2025-10-15 15:05:14.409872)
#> Worker process: 84dc3ead60e3d967e3734575025457a4
#>