support for parallel lanes, #21207

* for parallel serialziation/deserialization
* MergeHub for the outbound lanes
* BroadcastHub + filter for the inbound lanes, until we
  have a PartitionHub
* simplify materialization of test stage
* add RemoteSendConsistencyWithThreeLanesSpec
This commit is contained in:
Patrik Nordwall 2016-08-30 14:37:11 +02:00
parent 3d3a3528bf
commit faf941b4c8
25 changed files with 2653 additions and 383 deletions

View file

@ -455,14 +455,6 @@ private[akka] trait RemoteRef extends ActorRefScope {
final def isLocal = false
}
/**
* INTERNAL API
*/
private[remote] sealed abstract class MessageDestinationFlag
private[remote] case object RegularDestination extends MessageDestinationFlag
private[remote] case object LargeDestination extends MessageDestinationFlag
private[remote] case object PriorityDestination extends MessageDestinationFlag
/**
* INTERNAL API
* Remote ActorRef that is used when referencing the Actor on a different node than its "home" node.
@ -488,7 +480,7 @@ private[akka] class RemoteActorRef private[akka] (
@volatile private[remote] var cachedAssociation: artery.Association = null
// used by artery to direct messages to separate specialized streams
@volatile private[remote] var cachedMessageDestinationFlag: MessageDestinationFlag = null
@volatile private[remote] var cachedSendQueueIndex: Int = -1
def getChild(name: Iterator[String]): InternalActorRef = {
val s = name.toStream