Prove every ext-state write by reading the key back, so no guard is constant-true
SetProjExtState's return describes the whole extname. The persist and the instrument's publish now re-read their key; both refusals can finally fire.
This commit is contained in:
@@ -186,8 +186,13 @@ BakeChainResult runBake(ReaSamplerProcessor& processor) {
|
||||
|
||||
const std::string key = bakeKeyFor(instanceGuid);
|
||||
RequestKeyGuard keyGuard(bridge, key);
|
||||
// The bridge PROVES this by reading the key back, so a false here is real: the
|
||||
// extension would find nothing to land. It does not say which of the three ways failed,
|
||||
// so neither does this sentence.
|
||||
if (!bridge.writeBakeExtState(key, wire::encodeBakeRequest(request)))
|
||||
return fail("could not publish the bake request");
|
||||
return fail("the bake request under " + key +
|
||||
" could not be confirmed -- it was either never written or did not "
|
||||
"read back as written, so the extension has nothing to land");
|
||||
|
||||
// Synchronous: the extension's landing runs to completion inside this call and writes
|
||||
// its outcome back over the same key before returning.
|
||||
|
||||
Reference in New Issue
Block a user