Major actor updates plus several bug fixes and minor refactoring. Please see the changelog for details.
- C native
CAtomicBoolean
- C native
CAtomicFixnum
- Refactored intermittently failing tests
- Added
dataflow!
anddataflow_with!
methods to matchFuture#value!
method - Better handling of timeout in
Agent
- Actor Improvements
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like:
Termination
,Pausing
,Linking
,Supervising
, etc. Users can create custom Actors easily based on their needs. - Supervision was added.
RestartingContext
will pause on error waiting on its supervisor to decide what to do next ( options are:terminate!
,:resume!
,:reset!
,:restart!
). Supervising behavior also supports strategies:one_for_one
and:one_for_all
. - Linking was added to be able to monitor actor's events like:
:terminated
,:paused
,:restarted
, etc. - Dead letter routing added. Rejected envelopes are collected in a configurable actor (default:
Concurrent::Actor.root.ask!(:dead_letter_routing)
) - Old
Actor
class removed and replaced by new implementation previously calledActress
.Actress
was kept as an alias forActor
to keep compatibility. Utils::Broadcast
actor which allows Publish–subscribe pattern.
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like: