futureverse / futureverse/future

Backend API: Formally define the "state" of a future

Open
#667 2 comments 0 reactions 0 assignees View on GitHub
Backend API documentation
Dominant language
R
Stars
1k
Forks
92
PR merge metrics
No merged PRs in 30d

Description

The state of a future is stored in the internal `state` field, which takes a character string. Supported values are:

* `"created"` - the future has been created, but not yet not launched
* `"running"` - the future has been launched, and is assumed to be running
* `"finished"` - the future has been successfully evaluated ("resolved"); results may or may not have been collected

It is to be decided if:

* `"failed"` - evaluation of the future failed
* `"interrupted"` - evaluation of the future was interrupted

should also be added to the above list. They are really not needed, because they could be inferred if we collect the FutureResults object and inspect that.

In the past, this was mostly specific to the **future** package, but with the move to a more generic backend solution (e.g. lazy futures are vanilla Future objects until launched, make it possible to relaunch failed Future objects, etc.) we need to tighten this up and standardize it.

* [x] I'll start by adding internal validation to the still, internal field `state`, to make sure it only takes known values, e.g. by creating a `$<-.Future` method. (Added to **future** 1.32.0 [2023-03-07]).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.