-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pipelining support #13
Comments
Also, under what circumstances would something be passed as the If that's too magical, another possibility I thought of was to have another unresolvedRelay method that would be called when the presence is resolved, something like Am I misunderstanding or oversimplifying what the pipelining issue is? |
Misunderstanding. Messages sent to an unresolved remote promise must be sent towards the decision point --- the vat which will decide what that promise resolves to. Otherwise, we have way too many round trips. See Promise Pipelining chapter of my thesis. |
Okay, thanks. That helps a lot. I will read your thesis. The second part of my question is whether we can supply a default unresolvedRelay, if it is not specified? That default would be too round-trippy for remote use, but it might simplify the case where you just want to intercept local eventual-sends while protecting the target object from being exposed with This would be somewhat like a Proxy, but without the full range of operations. |
Don't know. Worth exploring. |
FWIW, I've implemented this default in Agoric/eventual-send#7 and used it in one of the tests. If it turns out to be something that doesn't get accepted as part of the TC39 eventual-send proposal, I can easily remove it. |
…c#13) * Result of npm run lint-fix and manual eslint fixes
* document ERTP by way of Miller @ SFBW presentation * fix contractHost demo invocation
in the wallet, only subscribe to notifications if the offer becomes active. in the contract, don't save offers that are immediately consummated to the book It used to always update the counter-offers by asking zoe for fresh getOfferStatuses(). Now it knows which offer was consumed, so it directly removes that offer. A little refactoring to pull out common cases. This fixes the second problem described in #13 that included a stack trace.
in the wallet, only subscribe to notifications if the offer becomes active. in the contract, don't save offers that are immediately consummated to the book It used to always update the counter-offers by asking zoe for fresh getOfferStatuses(). Now it knows which offer was consumed, so it directly removes that offer. A little refactoring to pull out common cases. This fixes the second problem described in #13 that included a stack trace.
in the wallet, only subscribe to notifications if the offer becomes active. in the contract, don't save offers that are immediately consummated to the book It used to always update the counter-offers by asking zoe for fresh getOfferStatuses(). Now it knows which offer was consumed, so it directly removes that offer. A little refactoring to pull out common cases. This fixes the second problem described in #13 that included a stack trace.
@michaelfig I'm assigning both of us and closing. If I'm missing something, please let me know or reopen. |
For proper pipelining, we will need to create a
BasePromise
class that has the necessary hooks to forward messages from oneERelay
to another.Look at https://github.com/ysmood/yaku/blob/master/src/yaku.core.js for how this can be done minimally, and all we'll require is the ES5-compatible
BasePromise
constructor function with its prototype.The text was updated successfully, but these errors were encountered: