No description
* Moved to removing actors proactively when they are terminated instead of checking `isTerminated` during publish. * Subscribers which have registered before initializing the unsubscriber will be aggregated in a Seq until one is registered and then it will take responsibility of unregistering them on termination. * Initialization of the unsubscriber can only be run once - attempting to initialize the event stream with another unsubscriber will fail, and init will return false. * Assumed having an init (mutable) method on the `EventBus` is fine, as it has such methods already and @patriknw's comment in the task for this. * since we must check if the subscriber has any subscribed channels left we had to expose this detail from SubchannelClassification via `hasSubscriptions`. Increases cost of ubsubscribe(actor, channel) a bit. * Evacuated the expensive `hasSubscription` call out of eventstream's `unsubscribe` call, and instead making the Unsubscriber check this before it stops watching an actor. If in the mean time the same actor got subscribed, there will be a new Subscribe message emited - so we're good on that side. Also, if it would terminate before the unsubscriber gets the Register message it will call `watch(actor)` on a dead actor, which results in getting Terminated for it, thus we'll stop watching it from the Unsubscriber as expected. Final squash and small cleanup. Please review again; |
||
|---|---|---|
| akka-actor/src/main | ||
| akka-actor-tests/src/test | ||
| akka-agent/src | ||
| akka-camel/src | ||
| akka-cluster/src | ||
| akka-contrib | ||
| akka-docs | ||
| akka-kernel/src/main | ||
| akka-multi-node-testkit/src/main | ||
| akka-osgi/src | ||
| akka-persistence/src | ||
| akka-remote/src | ||
| akka-remote-tests/src | ||
| akka-samples | ||
| akka-slf4j/src | ||
| akka-testkit/src | ||
| akka-zeromq/src | ||
| atmos/src/main/resources | ||
| project | ||
| scripts | ||
| src/main/ls | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.textile | ||
h1. Akka We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Using the Actor Model we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the "Let it crash" model which the telecom industry has used with great success to build applications that self-heal and systems that never stop. Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. Akka is Open Source and available under the Apache 2 License. Learn more at "http://akka.io":http://akka.io.