Fixed Pool Size and Parallelism Factor

I’m using a blocking IO dispatcher with a fixed pool size of 16 as a bulkhead for some blocking operations:

blocking-io-dispatcher {
  type = Dispatcher
  executor = "thread-pool-executor"
  thread-pool-executor {
    fixed-pool-size = 16
  }
  throughput = 1
}

When I look at my actor system metrics, I’m seeing that this dispatcher is using 32 threads. Is that because it’s honoring the parallelism-factor = 2.0 for the thread-pool-executor? That part wasn’t clear to me in the documentation but I’m starting to assume that must be the case.

If the fixed-pool-size is set that is used for both corePoolSize and maximumPoolSize of the java.util.concurrent.ThreadPoolExecutor so what you observe should not be about configuration unless there is a bug hiding there, but from a quick look at it looks correct.

Not sure if there are some scenarios where the java.util.concurrent.ThreadPoolExecutor stops/starts threads unexpectedly. When the core and maximum are the same it should not reap threads based on the timeout (60s by default) which it otherwise may do.