is.promising
is now an S3 method. (#104)future_promise()
received a speed improvement when submitting many requests with a minimal number of {future}
workers. If future_promise()
runs out of available {future}
workers, then future_promise()
will preemptively return for the remainder of the current {later}
execution. While it is possible for {future}
to finish a job before submitting all of the future_promise()
requests, the time saved by not asking {future}
's worker availability will be faster overall than if a few jobs were submitted early. (#78)
Fixed #86: future_promise()
spuriously reports unhandled errors. (#90)
Move {fastmap}
from Suggests
to Imports
for better {renv}
discovery. (#87)
Added future_promise()
which returns a promise
that executes the expression using future::future()
. future_promise()
should (typically) be a drop-in replacement for any future::future()
function call. future_promise()
will not execute future
work faster than future::future()
, but future_promise()
will only submit future
jobs if a worker is available. If no workers are available, future_promise()
will hold the expression information in a promise
until a worker does become available to better take advantage of computing resources available to the main R session. For more information, please see the future_promise()
article. (#62)
Added visibility support for Promise$then(onFulfilled)
. (#59)
future::resolved()
and future::value()
by discarding the corrupt future. (#37)Fixed #49: promise_all()
previously did not handle NULL
values correctly. (#50))
new_promise_domain
now takes a wrapOnFinally
argument, which can be used to intercept registration of finally()
. Previous versions treated finally
as passing the same callback to then(onFulfilled=..., onRejected=...)
, and ignoring the result; for backward compatibility, promise domains will still treat finally
that way by default (i.e. if wrapOnFinally
is NULL
, then finally
will result in wrapOnFulfilled
and wrapOnRejected
being called, but if wrapOnFinally
is provided then only wrapOnFinally
will be called). (#43)