Loose type checking in E

Tyler Close tyler@lfw.org
Sat, 17 Oct 1998 10:49:16 -0400


At 02:12 AM 10/17/98 -0400, you wrote:
>At 01:05 AM 10/17/98 -0400, I wrote:
>>Well, I am by no means done reading all of the Actor links that you
>>recommended; however, I feel that I am ready to state my gripe in Actor
>>terminology.
>>
>>The Actor theory depends on partial orderings of events in order to perform
>>real calculations. I can see how your Promise objects will enforce the
>>activation ordering; however, I see no mechanism for enforcing the arrival
>>ordering.
>
[Algorithm description omitted]

Arg... that'll only work if you know in advance what the combined ordering
diagram is. That's probably a bad assumption. Sorry, I guess I shouldn't be
thinking out loud.

I think I've got it this time, but I'd like to check. Alright, assume that
the transaction is a read and write of some memory location.

                  |
 e1 ---> e2 ---> e3
                  |
                 e4 ---> e5 ---> e6
                  |

       Fig. 1: A combined ordering diagram.

So, assume Fig. 1 is Actor A reading and then writing Actor B (the memory
location), followed by Actor C reading and then writing Actor B. 

Can Actor A start its transaction by sending Actor B a Promise to write
something (e3), and then send the request (e1) to read the contents of
Actor B? Does Actor B's vat fill request e1 right away and keep request e4
blocked until Actor A fills its Promise (e3)?

This feels like the right answer, but if so, then I don't understand why
you said that atomic transactions are not possible?

Tyler