Concurrent Futures
Rob Withers
reefedjib at yahoo.com
Mon Oct 29 21:06:44 UTC 2007
----- Original Message -----
From: "Igor Stasenko" <siguctua at gmail.com>
> Lets see , what is happen if we have only a future sends.
> Then, given code:
> a print.
> b print.
>
> will not guarantee that a will be printed before b.
In SqueakElib, it will guarantee order if a and b are in the same Vat and
already resolved (not Promises/Futures). If a is a promise and b is
resolved, then they will print out of order. Likewise, if a is remote and b
is local, they will print out of order. Msgs to objects in the same Vat are
scheduled in order.
> Yes, we can make 'futureA whenComplete:' check implicitly (by
> modifying VM), then we can preserve old code. But do we really need a
> futures everywhere?
This is what I am trying to do with SqueakElib. Any old object referenced
in the system is an eventual local ref, but the system should handle
promises or non-local refs anywhere.
> Or, we using both of them by mixing.. (which i think is most
> appropriate).. But then, stating that such system can be really
> lock-free, is wrong, because it depends on decision of concrete
> developer and his code.
We may be able to rewrite Semaphores in terms of promises, and modify
Processes to run on a particular vat as an event. Thus remove possible
deadlocks from old code.
Rob
More information about the Squeak-dev
mailing list
|