Instead of isTerminated we now use death watch on subscribers. ! Breaking change - ActorClassification based event buses now require and actor system. Previously no actors were involved, but now someone has to `watch` the subscribers. The unsubscriber is an system actor, and won't be stopped automagically if a bus stops to be used (hard to determine what "stops being used" is) * Replaced isTerminated checks with watching actors * backing structure for ActorClassification swaped from ConcurrentHashMap to immutable.Map with CAS operations on it. This is required to avoid races and guarantee register/unregister ordering (messages sent with proper sequence numbers) to the unsubscriber. Performance tested it and still above 1.3million subscribe+unsubscribe ops per second (mac i7, retina), where as the CHM version was 4 million - but that one could only work in the presence of itTerminated - so we pay the price here for removing it. * `ActorClassification` starts the unsubscriber instance by itself, the unsubscriber is an system actor, and can be stopped via `ActorClassification#shutdown` * Will unregister from unsubscriber, when no more subscriptions for given subscriber are left in this bus. * Added missing "Java API: " for some types * Updated docs to point out the automatic subscriber purging (on terminated) |
||
|---|---|---|
| .. | ||
| additional | ||
| common | ||
| dev | ||
| experimental | ||
| general | ||
| images | ||
| intro | ||
| java | ||
| project | ||
| scala | ||
| conf.py | ||
| index.rst | ||
| java.rst | ||
| scala.rst | ||