concurrent smalltalk (was: self syntax)

Jecel Assumpcao Jr jecel at merlintec.com
Fri Aug 24 18:52:12 UTC 2001


On Thursday 23 August 2001 20:13, Rick wrote:
> Is this the work that had led to Muse and to Aperios?

The same people were responsible, but I don't think the projects were 
very related. In particular, Mario and friends had the silly notion 
that C++ was good enough for this kind of thing. I hope they have 
learned their lesson ( see paper 11, "Cognac:...", in 
http://www.csl.sony.co.jp/project/Apertos/techpaper.html ).

And Rob wrote:
> Super.  Thank you for the links.  I have some reading to do, as I am
> confused about the fourth concurrent operation from Yokote's work. 
> (async send, async receive, return, and acknowledge)  I don't
> understand the use of acknowledge as a primitive operation.

This is from memory, so don't trust me on this. Acknowledges were 
expressions starting with a double up arrow, right?

In a system like QNX you have SYNC SEND, SYNC RECEIVE and REPLY. The 
client software just SENDs, while the server is in a loop explicitly 
RECEIVEing and REPLYing. As soon as it REPLYs (sorry about the bad 
English) it allows the client to continue execution while in parallel 
it can continue doing things until the next RECEIVE.

In CST a client can block or not (SYNC SEND, ASYNC SEND) but the server 
does not explicitly receive the messages. Instead, every time it 
finishes executing the previous method (return or REPLY) it implicitly 
waits for the next message. But what if you have things to do after 
calculating the final result (so the client could continue if it was 
blocked on a SYNC SEND)? In that case you use an ACKNOWLEDGE in the 
middle of the method instead of REPLY in the final statement in order 
to return the value.

If it was not like this, then it was something equally interesting ;-)
-- Jecel




More information about the Squeak-dev mailing list