Learn R Programming

future (version 1.1.1)

getExpression: Inject code for the next type of future to use for nested futures

Description

Inject code for the next type of future to use for nested futures

Usage

getExpression(future, ...)

Arguments

future
Current future.
...
Not used.

Value

A future expression with code injected to set what type of future to use for nested futures, iff any.

Details

If no next future strategy is specified, the default is to use eager futures. This conservative approach protects against spawning off recursive futures by mistake, especially multicore and multisession ones. The default will also set options(mc.cores=0L), which means that no additional R processes may be spawned off by functions such as mclapply() and friends (*).

Currently it is not possible to specify what type of nested futures to be used, meaning the above default will always be used. See Issue #37 for plans on adding support for custom nested future types.

(*) Note that using mc.cores=0 will unfortunately cause mclapply() and friends to generate an error saying "'mc.cores' must be >= 1". Ideally those functions should fall back to using the non-multicore alternative in this case, e.g. mclapply(...) => lapply(...). See https://github.com/HenrikBengtsson/Wishlist-for-R/issues/7 for a discussion on this.