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
varis NULL, then returned list only contains futures, otherwise alsodefaultvalues.
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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-12
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003144979 secs (started 2025-11-01 11:36:10.305915)
#> Worker process: 843511283d7675c3b81c233636546ad7
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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-13
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003058434 secs (started 2025-11-01 11:36:10.318374)
#> Worker process: 843511283d7675c3b81c233636546ad7
## 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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-12
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003144979 secs (started 2025-11-01 11:36:10.305915)
#> Worker process: 843511283d7675c3b81c233636546ad7
#>
#> $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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-13
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003058434 secs (started 2025-11-01 11:36:10.318374)
#> Worker process: 843511283d7675c3b81c233636546ad7
#>
#> $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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-13
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003058434 secs (started 2025-11-01 11:36:10.318374)
#> Worker process: 843511283d7675c3b81c233636546ad7
#>
## 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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-14
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003376245 secs (started 2025-11-01 11:36:10.338176)
#> Worker process: 843511283d7675c3b81c233636546ad7
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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-14
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003376245 secs (started 2025-11-01 11:36:10.338176)
#> Worker process: 843511283d7675c3b81c233636546ad7
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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-14
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003376245 secs (started 2025-11-01 11:36:10.338176)
#> Worker process: 843511283d7675c3b81c233636546ad7
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: 0x6360c9fe91a8
#> State: ‘finished’
#> Resolved: TRUE
#> Unique identifier: 843511283d7675c3b81c233636546ad7-14
#> Owner process: 843511283d7675c3b81c233636546ad7
#> Class: ‘SequentialFuture’, ‘UniprocessFuture’, ‘Future’
#> Value: 39 bytes of class ‘numeric’
#> Duration: 0.003376245 secs (started 2025-11-01 11:36:10.338176)
#> Worker process: 843511283d7675c3b81c233636546ad7
#>
