A Julia implementation of the Actor Model, based on Julia Tasks. Currently, only very basic functionality is implemented. This is likely to end up as something of a hybrid between Erlang- and Scala/Akka-style actors.
The following features are currently missing (but planned):
Actor communication beyond current process (on Julia clusters)
Truly parallel actors on shared memory (once Julia multi-threading lands)
using Actors echo_actor = @actor begin info("Myself: $(self())") while true const sender, msg = receive() info("Received from $sender: $msg") tell(sender, msg) end end silent_actor = @actor begin info("Myself: $(self())") while true const sender, msg = receive() tell(sender, msg) end end tell(echo_actor, "Hello!") info("Reply: $(receive())") reply = ask(echo_actor, "bar") info("Query reply: $reply")
over 1 year ago