This is a massive overhaul of the internals, as well as significant changes to the API.
The most notable change is that Actor Processors are now Async, and the worker threads and channel are refactored into the Executor-Reactor pattern. @LucioFranco has agreed to do us the massive favour of reviewing these specific changes.
Other changes include breaking up AxiomError, and passing state by value (and expecting it returned back).
Progress
[x] Implement changes
[x] Fix documentation
[x] Fix tests
[x] cargo fmt
[x] Add new tests
[x] Sleeping Actors are returned
[x] Waiting Actors are woken after returning Pending
[x] Actors can panic (should turn into a Panic error for a Monitor)
[x] Reactors resume after running out of work (send a message after 150ms)
[x] Nested futures wake the Actor (nest another async block, then a future that threads a wakeup in 50ms)
This is a massive overhaul of the internals, as well as significant changes to the API.
The most notable change is that Actor Processors are now Async, and the worker threads and channel are refactored into the Executor-Reactor pattern. @LucioFranco has agreed to do us the massive favour of reviewing these specific changes.
Other changes include breaking up AxiomError, and passing state by value (and expecting it returned back).
Progress
cargo fmt
Panic
error for a Monitor)