In JavaThreadPoolExecutor there is this:
if min_length == 0 && @max_queue == 0
queue = java.util.concurrent.SynchronousQueue.new
It has the surprising result that Concurrent::ThreadPoolExecutor.new(max_threads: 4) has a bounded queue while Concurrent::ThreadPoolExecutor.new(max_threads: 4, min_threads: 1) an unbounded one. What is the reason for this condition? Maybe there should be a separate option for this?