[e-lang] Should local promises respond to __whenMoreResolved on resolution?

Kevin Reid kpreid at mac.com
Sun Sep 9 13:57:35 EDT 2007

On Sep 9, 2007, at 13:42, Mark Miller wrote:

> On 9/9/07, Kevin Reid <kpreid at mac.com> wrote:
>> Currently, if I understand correctly, they will remain different
>> until the remaining promise resolves to a resolved-ref or a remote
>> promise which itself resolves and responds to __whenMoreResolved at
>> that time.
> I would have said "or a remote promise" without the "which itself
> resolves". The second clause seems incorrect to me.

The event of { the local promise resolves to the remote promise }  
does not trigger any notification, because it is the local promise's  
responsibility to do so if it happens at all. The local promise  
currently merely forwards messages to the remote promise; the remote  
promise's expected behavior is to either queue or forward them.

>> It also seems to break shortening: if the latter promise in the above
>> scenario is a proxy, then it might be a candidate for 2 or 3-vat
>> shortening, but the local comm system won't be notified of the
>> resolution.
> I don't understand this scenario. Can you expand? Thanks.

If no WMR-reactor is invoked as a result of a local promise  
resolving, then the local comm system can't know to send a response  
to the remote holder of that promise which carries the to-be- 
shortened ref as a Promise3Desc.

1. Alice and Carol have local promises. Alice has a CapTP reference  
to Carol's promise.

2. Alice sends her promise to Bob. Her local comm system sends  
__whenMoreResolved to the promise with the redirector as reactor. The  
message is queued in the local resolver.

3. Alice resolves her local promise to (her proxy for) Carol's  
promise; the WMR message is forwarded to her proxy-for-Carol.

Nothing here causes a Promise3Desc to be sent to Bob's redirector for  
his proxy of Alice's promise.

Kevin Reid                            <http://homepage.mac.com/kpreid/>

More information about the e-lang mailing list