diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2022-01-25 07:54:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-25 07:54:34 +0100 |
commit | a2873ebedbbdb9daacdd87517ea3b9fa21794d26 (patch) | |
tree | 346791c76cd981a806f884b150eae2618f45c7b7 | |
parent | 7c57db8215a3a08595c4fa8cf3e0bc8dcb3405f9 (diff) | |
parent | 565a260840b8d284ac68f973adfc040237115c67 (diff) |
Merge pull request #20919 from vespa-engine/balder/avoid-deadlock-caused-by-bound-q
We must ensure that we do not end up with a rejected execution that c…
-rw-r--r-- | messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java index 5ff9a4b0313..c457a703ecc 100644 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java @@ -38,7 +38,7 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.concurrent.ExecutorService; -import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -53,7 +53,7 @@ import java.util.stream.Collectors; */ public class RPCNetwork implements Network, MethodHandler { - private static Logger log = Logger.getLogger(RPCNetwork.class.getName()); + private static final Logger log = Logger.getLogger(RPCNetwork.class.getName()); private final AtomicBoolean destroyed = new AtomicBoolean(false); private final Identity identity; @@ -69,8 +69,8 @@ public class RPCNetwork implements Network, MethodHandler { private final LinkedHashMap<String, Route> lruRouteMap = new LinkedHashMap<>(10000, 0.5f, true); private final ExecutorService executor = new ThreadPoolExecutor(getNumThreads(), getNumThreads(), 0L, TimeUnit.SECONDS, - new SynchronousQueue<>(false), - ThreadFactoryFactory.getDaemonThreadFactory("mbus.net"), new ThreadPoolExecutor.CallerRunsPolicy()); + new LinkedBlockingQueue<>(), + ThreadFactoryFactory.getDaemonThreadFactory("mbus.net")); private static int getNumThreads() { return Math.max(2, Runtime.getRuntime().availableProcessors()/2); |