#include "cor_platform.h"

typedef struct Future_WatcherSpec Future_WatcherSpec;

typedef enum Future_State {
    Future_State_Waiting,
    Future_State_Done
} Future_State;

struct Future {
    Future_vfptrs_t *vfptrs;
    Future_State state;
    void *value;
    bool canceled;
    _Cor_Mutex mutex;
    Future_WatcherSpec *watchers;
    int nwatchers;
    int maxwatchers;
};
