# IGNITE-883 Don't create public pool on client node
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bfae8897 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bfae8897 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bfae8897 Branch: refs/heads/ignite-883_1 Commit: bfae889766d92a126a5fc2938b196f83249cc097 Parents: dce6789 Author: sevdokimov <sevdoki...@gridgain.com> Authored: Mon Jun 1 18:10:28 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Mon Jun 1 19:49:54 2015 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/internal/IgnitionEx.java | 36 +++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bfae8897/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index 6e4efb5..d9f6bb4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -1447,16 +1447,6 @@ public class IgnitionEx { ensureMultiInstanceSupport(myCfg.getSwapSpaceSpi()); } - execSvc = new IgniteThreadPoolExecutor( - "pub-" + cfg.getGridName(), - cfg.getPublicThreadPoolSize(), - cfg.getPublicThreadPoolSize(), - DFLT_PUBLIC_KEEP_ALIVE_TIME, - new LinkedBlockingQueue<Runnable>(DFLT_PUBLIC_THREADPOOL_QUEUE_CAP)); - - // Pre-start all threads as they are guaranteed to be needed. - ((ThreadPoolExecutor) execSvc).prestartAllCoreThreads(); - // Note that since we use 'LinkedBlockingQueue', number of // maximum threads has no effect. sysExecSvc = new IgniteThreadPoolExecutor( @@ -1466,8 +1456,30 @@ public class IgnitionEx { DFLT_SYSTEM_KEEP_ALIVE_TIME, new LinkedBlockingQueue<Runnable>(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP)); - // Pre-start all threads as they are guaranteed to be needed. - ((ThreadPoolExecutor) sysExecSvc).prestartAllCoreThreads(); + boolean isClientMode = Boolean.TRUE.equals(myCfg.isClientMode()); + + if (isClientMode) { + execSvc = new IgniteThreadPoolExecutor( + "pub-" + cfg.getGridName(), + 0, + cfg.getPublicThreadPoolSize(), + 2000, + new LinkedBlockingQueue<Runnable>(DFLT_PUBLIC_THREADPOOL_QUEUE_CAP)); + } + else { + execSvc = new IgniteThreadPoolExecutor( + "pub-" + cfg.getGridName(), + cfg.getPublicThreadPoolSize(), + cfg.getPublicThreadPoolSize(), + DFLT_PUBLIC_KEEP_ALIVE_TIME, + new LinkedBlockingQueue<Runnable>(DFLT_PUBLIC_THREADPOOL_QUEUE_CAP)); + + // Pre-start all threads as they are guaranteed to be needed. + ((ThreadPoolExecutor) execSvc).prestartAllCoreThreads(); + + // Pre-start all threads as they are guaranteed to be needed. + ((ThreadPoolExecutor) sysExecSvc).prestartAllCoreThreads(); + } // Note that since we use 'LinkedBlockingQueue', number of // maximum threads has no effect.