in src/ThreadSafeDeferred.cc [86:91]
void ThreadSafeDeferred::Resolve(const createValueCb_t createValueCb) {
if (this->fate != EFate::UNRESOLVED) throw "Cannot resolve a promise which is not unresolved anymore.";
this->createValueCb = createValueCb;
this->fate = EFate::RESOLVED;
this->tsf.Release();
}