Currently actors start and never stop. It should be possible to stop actors, i.e. clearing out their mailbox (or at leastnotifying waiting callers) and removing the mailbox.
It should also be possible to restart, i.e. replace the instance associated with the mailbox. This will become important when error propagation (#2) is implemented.
Some mechansim for letting instances clean up their state should be provided. While IDisposable would be idiomatic C#, it's synchronous, so likely shutdown should be async-able.
Which means that construction and initialization should also be separate to allow initialization to be async.
Probably a good idea to take a good look at the Lifecycle management secton of Akka:
http://doc.akka.io/docs/akka/snapshot/scala/actors.html
Currently actors start and never stop. It should be possible to stop actors, i.e. clearing out their mailbox (or at leastnotifying waiting callers) and removing the mailbox.
It should also be possible to restart, i.e. replace the instance associated with the mailbox. This will become important when error propagation (#2) is implemented.
Some mechansim for letting instances clean up their state should be provided. While
IDisposablewould be idiomatic C#, it's synchronous, so likely shutdown should be async-able.Which means that construction and initialization should also be separate to allow initialization to be async.
Probably a good idea to take a good look at the Lifecycle management secton of Akka:
http://doc.akka.io/docs/akka/snapshot/scala/actors.html