Extract the layouts of the running streams as an AST (#25831)
This commit is contained in:
parent
1b98ae8601
commit
df089016fa
11 changed files with 433 additions and 167 deletions
|
|
@ -4,24 +4,19 @@
|
|||
|
||||
package akka.stream
|
||||
|
||||
import java.util.concurrent.CountDownLatch
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
import scala.concurrent.Await
|
||||
import scala.concurrent.Future
|
||||
import scala.concurrent.duration._
|
||||
import java.util.concurrent.{ CountDownLatch, TimeUnit }
|
||||
|
||||
import akka.NotUsed
|
||||
import akka.actor.ActorSystem
|
||||
import akka.remote.artery.BenchTestSource
|
||||
import akka.remote.artery.LatchSink
|
||||
import akka.stream.impl.PhasedFusingActorMaterializer
|
||||
import akka.stream.impl.StreamSupervisor
|
||||
import akka.remote.artery.{ BenchTestSource, LatchSink }
|
||||
import akka.stream.scaladsl._
|
||||
import akka.testkit.TestProbe
|
||||
import akka.stream.testkit.scaladsl.StreamTestKit
|
||||
import com.typesafe.config.ConfigFactory
|
||||
import org.openjdk.jmh.annotations._
|
||||
|
||||
import scala.concurrent.{ Await, Future }
|
||||
import scala.concurrent.duration._
|
||||
|
||||
object MapAsyncBenchmark {
|
||||
final val OperationsPerInvocation = 100000
|
||||
}
|
||||
|
|
@ -95,19 +90,9 @@ class MapAsyncBenchmark {
|
|||
|
||||
private def awaitLatch(latch: CountDownLatch): Unit = {
|
||||
if (!latch.await(30, TimeUnit.SECONDS)) {
|
||||
dumpMaterializer()
|
||||
StreamTestKit.printDebugDump(materializer.supervisor)
|
||||
throw new RuntimeException("Latch didn't complete in time")
|
||||
}
|
||||
}
|
||||
|
||||
private def dumpMaterializer(): Unit = {
|
||||
materializer match {
|
||||
case impl: PhasedFusingActorMaterializer ⇒
|
||||
val probe = TestProbe()(system)
|
||||
impl.supervisor.tell(StreamSupervisor.GetChildren, probe.ref)
|
||||
val children = probe.expectMsgType[StreamSupervisor.Children].children
|
||||
children.foreach(_ ! StreamSupervisor.PrintDebugDump)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue