Skip to content

Commit

Permalink
chore: Proper test virtual thread dispatcher and update doc.
Browse files Browse the repository at this point in the history
  • Loading branch information
He-Pin committed Jan 18, 2025
1 parent 5b2aab6 commit ef0a706
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ object VirtualThreadPoolDispatcherSpec {

override def receive = {
case "ping" =>
sender() ! "All fine"
sender() ! Thread.currentThread().getName
}
}

Expand All @@ -43,14 +43,14 @@ object VirtualThreadPoolDispatcherSpec {
class VirtualThreadPoolDispatcherSpec extends PekkoSpec(VirtualThreadPoolDispatcherSpec.config) with ImplicitSender {
import VirtualThreadPoolDispatcherSpec._

val Iterations = 1000

"VirtualThreadPool support" must {

"handle simple dispatch" in {
val innocentActor = system.actorOf(Props(new InnocentActor).withDispatcher("virtual-thread-dispatcher"))
innocentActor ! "ping"
expectMsg("All fine")
for (_ <- 1 to 1000) {
innocentActor ! "ping"
expectMsgPF() { case name: String => name should include("virtual-thread") }
}
}

}
Expand Down
2 changes: 2 additions & 0 deletions docs/src/main/paradox/dispatchers.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ allocated by the ForkJoinPool. It is a setting specifically talking about the nu
threads the pool keep running in order to reduce the latency of handling a new incoming task.
You can read more about parallelism in the JDK's [ForkJoinPool documentation](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html).

When Running on Java 9+, you can use `maximum-pool-size` to set the upper bound on the total number of threads allocated by the ForkJoinPool.

@@@

Another example that uses the "thread-pool-executor":
Expand Down
2 changes: 2 additions & 0 deletions docs/src/main/paradox/typed/dispatchers.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@ allocated by the ForkJoinPool. It is a setting specifically talking about the nu
threads the pool will keep running in order to reduce the latency of handling a new incoming task.
You can read more about parallelism in the JDK's [ForkJoinPool documentation](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html).

When Running on Java 9+, you can use `maximum-pool-size` to set the upper bound on the total number of threads allocated by the ForkJoinPool.

@@@

@@@ note
Expand Down
1 change: 1 addition & 0 deletions project/PekkoBuild.scala
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ object PekkoBuild {
UsefulTask("testQuick",
"Runs all the tests. When run multiple times will only run previously failing tests (shell mode only)"),
UsefulTask("testOnly *.AnySpec", "Only run a selected test"),
UsefulTask("TestJdk9 / testOnly *.AnySpec", "Only run a Jdk9+ selected test"),
UsefulTask("testQuick *.AnySpec",
"Only run a selected test. When run multiple times will only run previously failing tests (shell mode only)"),
UsefulTask("testQuickUntilPassed", "Runs all tests in a continuous loop until all tests pass"),
Expand Down

0 comments on commit ef0a706

Please sign in to comment.