Actors for Squeak Smalltalk
Last updated at 7:34 am UTC on 22 February 2019
The Smalltalk-80 concurrency model is, at heart, threads with mutable shared state plus locks, semaphores, mutexes and so on (More: Squeak Threading Model).
The library adds an Erlang-style Actor model to Squeak.
The following code snippet creates an actor, and invokes one of its methods via synchronous (Promise-based) RPC:
h := HelloWorldActor spawn.
(h greet: 'Actor world') wait.
"produces 'Hello, Actor world!'"
Actors are concurrent Smalltalk objects.
https://tonyg.github.io/squeak-actors/processes.html#actor-concurrent-smalltalk-objects
Every Actor’s behavior is specified by a distinct behavior object, usually (but not always!) a subclass of ActorBehavior. Because Actor is a subclass of both ActorProcess and Process, it inherits the public interfaces of both.
More: https://tonyg.github.io/squeak-actors/
.....
Tutorials
The easiest way to learn the library is to try it out. There’s no substitute for experimentation in a live image!
The code snippets in the pages cannot be as interactive as the real thing. It can be difficult to get a feel for the system without hands-on experience. Install the system to try it out.
https://tonyg.github.io/squeak-actors/tutorials.html