Quantcast

[PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

Mkrtchyan, Tigran
Signed-off-by: Tigran Mkrtchyan <[hidden email]>
---
 .../src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java     | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
index 9cc98cf..8630c8b4 100644
--- a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
+++ b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
@@ -149,6 +149,11 @@ public abstract class NIOTransportBuilder<T extends NIOTransportBuilder> {
      */
     public T setSelectorThreadPoolConfig(final ThreadPoolConfig threadPoolConfig) {
         transport.setKernelThreadPoolConfig(threadPoolConfig);
+        /*
+         * selector runners count MUST not be greater than number of threads in the pool
+         */
+        int selectorRunnersCount = Math.min(threadPoolConfig.getMaxPoolSize(), transport.getSelectorRunnersCount());
+        transport.setSelectorRunnersCount(selectorRunnersCount);
         return getThis();
     }
 
--
1.8.5.3

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

oleksiys
Administrator
Hi Tigran,

I've commited this fix:
https://github.com/GrizzlyNIO/grizzly-mirror/commit/55273b6750a191b113f67de515cefc0c96e45758

with the following change [1], which still haven't reached github mirror.

What do you think?

WBR,
Alexey.


[1]

Revisions:
----------
fbef39556a11f8f0fc6b767ab56621473d2f7da0


Modified Paths:
---------------
modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java


Diffs:
------
--- a/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
+++ b/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
@@ -196,7 +196,8 @@ public abstract class NIOTransport extends AbstractTransport
      public void setSelectorRunnersCount(final int selectorRunnersCount) {
          if (selectorRunnersCount > 0) {
              this.selectorRunnersCount = selectorRunnersCount;
-            if (kernelPoolConfig != null) {
+            if (kernelPoolConfig != null &&
+                    kernelPoolConfig.getMaxPoolSize() < selectorRunnersCount) {
                  kernelPoolConfig.setCorePoolSize(selectorRunnersCount)
                                  .setMaxPoolSize(selectorRunnersCount);
              }
@@ -424,8 +425,8 @@ public abstract class NIOTransport extends AbstractTransport
                              .setPoolName("grizzly-nio-kernel");
                  }
                  kernelPoolConfig.setMemoryManager(memoryManager);
-                if (kernelPoolConfig.getCorePoolSize() < selectorRunnersCnt) {
-                    throw new IllegalStateException("The min threads count of the kernel ThreadPool has to be larger or equal to the selectorRunnersCount");
+                if (kernelPoolConfig.getMaxPoolSize() < selectorRunnersCnt) {
+                    throw new IllegalStateException("The max threads count of the kernel ThreadPool has to be larger or equal to the selectorRunnersCount");
                  }
                  setKernelPool0(
                          GrizzlyExecutorService.createInstance(



On 13.03.14 01:32, Tigran Mkrtchyan wrote:

> Signed-off-by: Tigran Mkrtchyan <[hidden email]>
> ---
>   .../src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java     | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> index 9cc98cf..8630c8b4 100644
> --- a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> +++ b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> @@ -149,6 +149,11 @@ public abstract class NIOTransportBuilder<T extends NIOTransportBuilder> {
>        */
>       public T setSelectorThreadPoolConfig(final ThreadPoolConfig threadPoolConfig) {
>           transport.setKernelThreadPoolConfig(threadPoolConfig);
> +        /*
> +         * selector runners count MUST not be greater than number of threads in the pool
> +         */
> +        int selectorRunnersCount = Math.min(threadPoolConfig.getMaxPoolSize(), transport.getSelectorRunnersCount());
> +        transport.setSelectorRunnersCount(selectorRunnersCount);
>           return getThis();
>       }
>  

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

Mkrtchyan, Tigran


I think it's broken. Check this two tests:

    @Test
    public void testCustomThreadPoolSameThreadStrategy() throws Exception {

        final int poolSize = Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
        final ThreadPoolConfig poolCfg = ThreadPoolConfig.defaultConfig();
        poolCfg.setCorePoolSize(poolSize).setMaxPoolSize(poolSize);

        final TCPNIOTransport tcpTransport = TCPNIOTransportBuilder.newInstance()
                .setReuseAddress(true)
                .setIOStrategy(SameThreadIOStrategy.getInstance())
                .setSelectorThreadPoolConfig(poolCfg)
                .setWorkerThreadPoolConfig(null)
                .build();
        try {
            tcpTransport.start();
        } finally {
            tcpTransport.shutdownNow();
        }
    }

    @Test
    public void testCustomThreadPoolWorkerThreadStrategy() throws Exception {

        final int selectorPoolSize =  Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
        final ThreadPoolConfig selectorPoolCfg = ThreadPoolConfig.defaultConfig();
        selectorPoolCfg.setCorePoolSize(selectorPoolSize).setMaxPoolSize(selectorPoolSize);

        final int workerPoolSize = Runtime.getRuntime().availableProcessors() * 2 ;
        final ThreadPoolConfig workerPoolCfg = ThreadPoolConfig.defaultConfig();
        workerPoolCfg.setCorePoolSize(workerPoolSize).setMaxPoolSize(workerPoolSize);

       final TCPNIOTransport tcpTransport = TCPNIOTransportBuilder.newInstance()
                .setReuseAddress(true)
                .setIOStrategy(WorkerThreadIOStrategy.getInstance())
                .setSelectorThreadPoolConfig(selectorPoolCfg)
                .setWorkerThreadPoolConfig(workerPoolCfg)
                .build();
        try {
            tcpTransport.start();
        } finally {
            tcpTransport.shutdownNow();
        }
    }


Tigran.



----- Original Message -----

> From: "Oleksiy Stashok" <[hidden email]>
> To: [hidden email]
> Sent: Friday, March 14, 2014 1:25:16 AM
> Subject: Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig
>
> Hi Tigran,
>
> I've commited this fix:
> https://github.com/GrizzlyNIO/grizzly-mirror/commit/55273b6750a191b113f67de515cefc0c96e45758
>
> with the following change [1], which still haven't reached github mirror.
>
> What do you think?
>
> WBR,
> Alexey.
>
>
> [1]
>
> Revisions:
> ----------
> fbef39556a11f8f0fc6b767ab56621473d2f7da0
>
>
> Modified Paths:
> ---------------
> modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
>
>
> Diffs:
> ------
> ---
> a/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> +++
> b/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> @@ -196,7 +196,8 @@ public abstract class NIOTransport extends
> AbstractTransport
>       public void setSelectorRunnersCount(final int selectorRunnersCount) {
>           if (selectorRunnersCount > 0) {
>               this.selectorRunnersCount = selectorRunnersCount;
> -            if (kernelPoolConfig != null) {
> +            if (kernelPoolConfig != null &&
> +                    kernelPoolConfig.getMaxPoolSize() <
> selectorRunnersCount) {
>                   kernelPoolConfig.setCorePoolSize(selectorRunnersCount)
>                                   .setMaxPoolSize(selectorRunnersCount);
>               }
> @@ -424,8 +425,8 @@ public abstract class NIOTransport extends
> AbstractTransport
>                               .setPoolName("grizzly-nio-kernel");
>                   }
>                   kernelPoolConfig.setMemoryManager(memoryManager);
> -                if (kernelPoolConfig.getCorePoolSize() < selectorRunnersCnt)
> {
> -                    throw new IllegalStateException("The min threads count
> of the kernel ThreadPool has to be larger or equal to the
> selectorRunnersCount");
> +                if (kernelPoolConfig.getMaxPoolSize() < selectorRunnersCnt)
> {
> +                    throw new IllegalStateException("The max threads count
> of the kernel ThreadPool has to be larger or equal to the
> selectorRunnersCount");
>                   }
>                   setKernelPool0(
>                           GrizzlyExecutorService.createInstance(
>
>
>
> On 13.03.14 01:32, Tigran Mkrtchyan wrote:
> > Signed-off-by: Tigran Mkrtchyan <[hidden email]>
> > ---
> >   .../src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java     | 5
> >   +++++
> >   1 file changed, 5 insertions(+)
> >
> > diff --git
> > a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> > b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> > index 9cc98cf..8630c8b4 100644
> > ---
> > a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> > +++
> > b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> > @@ -149,6 +149,11 @@ public abstract class NIOTransportBuilder<T extends
> > NIOTransportBuilder> {
> >        */
> >       public T setSelectorThreadPoolConfig(final ThreadPoolConfig
> >       threadPoolConfig) {
> >           transport.setKernelThreadPoolConfig(threadPoolConfig);
> > +        /*
> > +         * selector runners count MUST not be greater than number of
> > threads in the pool
> > +         */
> > +        int selectorRunnersCount =
> > Math.min(threadPoolConfig.getMaxPoolSize(),
> > transport.getSelectorRunnersCount());
> > +        transport.setSelectorRunnersCount(selectorRunnersCount);
> >           return getThis();
> >       }
> >  
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

oleksiys
Administrator
Ok, I've reworked it a bit
https://github.com/GrizzlyNIO/grizzly-mirror/commit/be6193310b07b13c240b03e9e5c4f5079b24621c

Thanks.

WBR,
Alexey.

On 14.03.14 04:57, Mkrtchyan, Tigran wrote:

>
> I think it's broken. Check this two tests:
>
>      @Test
>      public void testCustomThreadPoolSameThreadStrategy() throws Exception {
>
>          final int poolSize = Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
>          final ThreadPoolConfig poolCfg = ThreadPoolConfig.defaultConfig();
>          poolCfg.setCorePoolSize(poolSize).setMaxPoolSize(poolSize);
>
>          final TCPNIOTransport tcpTransport = TCPNIOTransportBuilder.newInstance()
>                  .setReuseAddress(true)
>                  .setIOStrategy(SameThreadIOStrategy.getInstance())
>                  .setSelectorThreadPoolConfig(poolCfg)
>                  .setWorkerThreadPoolConfig(null)
>                  .build();
>          try {
>              tcpTransport.start();
>          } finally {
>              tcpTransport.shutdownNow();
>          }
>      }
>
>      @Test
>      public void testCustomThreadPoolWorkerThreadStrategy() throws Exception {
>
>          final int selectorPoolSize =  Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
>          final ThreadPoolConfig selectorPoolCfg = ThreadPoolConfig.defaultConfig();
>          selectorPoolCfg.setCorePoolSize(selectorPoolSize).setMaxPoolSize(selectorPoolSize);
>
>          final int workerPoolSize = Runtime.getRuntime().availableProcessors() * 2 ;
>          final ThreadPoolConfig workerPoolCfg = ThreadPoolConfig.defaultConfig();
>          workerPoolCfg.setCorePoolSize(workerPoolSize).setMaxPoolSize(workerPoolSize);
>
>         final TCPNIOTransport tcpTransport = TCPNIOTransportBuilder.newInstance()
>                  .setReuseAddress(true)
>                  .setIOStrategy(WorkerThreadIOStrategy.getInstance())
>                  .setSelectorThreadPoolConfig(selectorPoolCfg)
>                  .setWorkerThreadPoolConfig(workerPoolCfg)
>                  .build();
>          try {
>              tcpTransport.start();
>          } finally {
>              tcpTransport.shutdownNow();
>          }
>      }
>
>
> Tigran.
>
>
>
> ----- Original Message -----
>> From: "Oleksiy Stashok" <[hidden email]>
>> To: [hidden email]
>> Sent: Friday, March 14, 2014 1:25:16 AM
>> Subject: Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig
>>
>> Hi Tigran,
>>
>> I've commited this fix:
>> https://github.com/GrizzlyNIO/grizzly-mirror/commit/55273b6750a191b113f67de515cefc0c96e45758
>>
>> with the following change [1], which still haven't reached github mirror.
>>
>> What do you think?
>>
>> WBR,
>> Alexey.
>>
>>
>> [1]
>>
>> Revisions:
>> ----------
>> fbef39556a11f8f0fc6b767ab56621473d2f7da0
>>
>>
>> Modified Paths:
>> ---------------
>> modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
>>
>>
>> Diffs:
>> ------
>> ---
>> a/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
>> +++
>> b/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
>> @@ -196,7 +196,8 @@ public abstract class NIOTransport extends
>> AbstractTransport
>>        public void setSelectorRunnersCount(final int selectorRunnersCount) {
>>            if (selectorRunnersCount > 0) {
>>                this.selectorRunnersCount = selectorRunnersCount;
>> -            if (kernelPoolConfig != null) {
>> +            if (kernelPoolConfig != null &&
>> +                    kernelPoolConfig.getMaxPoolSize() <
>> selectorRunnersCount) {
>>                    kernelPoolConfig.setCorePoolSize(selectorRunnersCount)
>>                                    .setMaxPoolSize(selectorRunnersCount);
>>                }
>> @@ -424,8 +425,8 @@ public abstract class NIOTransport extends
>> AbstractTransport
>>                                .setPoolName("grizzly-nio-kernel");
>>                    }
>>                    kernelPoolConfig.setMemoryManager(memoryManager);
>> -                if (kernelPoolConfig.getCorePoolSize() < selectorRunnersCnt)
>> {
>> -                    throw new IllegalStateException("The min threads count
>> of the kernel ThreadPool has to be larger or equal to the
>> selectorRunnersCount");
>> +                if (kernelPoolConfig.getMaxPoolSize() < selectorRunnersCnt)
>> {
>> +                    throw new IllegalStateException("The max threads count
>> of the kernel ThreadPool has to be larger or equal to the
>> selectorRunnersCount");
>>                    }
>>                    setKernelPool0(
>>                            GrizzlyExecutorService.createInstance(
>>
>>
>>
>> On 13.03.14 01:32, Tigran Mkrtchyan wrote:
>>> Signed-off-by: Tigran Mkrtchyan <[hidden email]>
>>> ---
>>>    .../src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java     | 5
>>>    +++++
>>>    1 file changed, 5 insertions(+)
>>>
>>> diff --git
>>> a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
>>> b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
>>> index 9cc98cf..8630c8b4 100644
>>> ---
>>> a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
>>> +++
>>> b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
>>> @@ -149,6 +149,11 @@ public abstract class NIOTransportBuilder<T extends
>>> NIOTransportBuilder> {
>>>         */
>>>        public T setSelectorThreadPoolConfig(final ThreadPoolConfig
>>>        threadPoolConfig) {
>>>            transport.setKernelThreadPoolConfig(threadPoolConfig);
>>> +        /*
>>> +         * selector runners count MUST not be greater than number of
>>> threads in the pool
>>> +         */
>>> +        int selectorRunnersCount =
>>> Math.min(threadPoolConfig.getMaxPoolSize(),
>>> transport.getSelectorRunnersCount());
>>> +        transport.setSelectorRunnersCount(selectorRunnersCount);
>>>            return getThis();
>>>        }
>>>    
>>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig

Mkrtchyan, Tigran
Hi Alexey,

looks ok, but I did not test it in production yet.

Tigran.

----- Original Message -----

> From: "Oleksiy Stashok" <[hidden email]>
> To: [hidden email]
> Sent: Saturday, March 15, 2014 6:27:42 AM
> Subject: Re: [PATCH] adjust selector count on NIOTransportBuilder#setSelectorThreadPoolConfig
>
> Ok, I've reworked it a bit
> https://github.com/GrizzlyNIO/grizzly-mirror/commit/be6193310b07b13c240b03e9e5c4f5079b24621c
>
> Thanks.
>
> WBR,
> Alexey.
>
> On 14.03.14 04:57, Mkrtchyan, Tigran wrote:
> >
> > I think it's broken. Check this two tests:
> >
> >      @Test
> >      public void testCustomThreadPoolSameThreadStrategy() throws Exception
> >      {
> >
> >          final int poolSize =
> >          Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
> >          final ThreadPoolConfig poolCfg = ThreadPoolConfig.defaultConfig();
> >          poolCfg.setCorePoolSize(poolSize).setMaxPoolSize(poolSize);
> >
> >          final TCPNIOTransport tcpTransport =
> >          TCPNIOTransportBuilder.newInstance()
> >                  .setReuseAddress(true)
> >                  .setIOStrategy(SameThreadIOStrategy.getInstance())
> >                  .setSelectorThreadPoolConfig(poolCfg)
> >                  .setWorkerThreadPoolConfig(null)
> >                  .build();
> >          try {
> >              tcpTransport.start();
> >          } finally {
> >              tcpTransport.shutdownNow();
> >          }
> >      }
> >
> >      @Test
> >      public void testCustomThreadPoolWorkerThreadStrategy() throws
> >      Exception {
> >
> >          final int selectorPoolSize =
> >          Math.max(Runtime.getRuntime().availableProcessors()/2, 1);
> >          final ThreadPoolConfig selectorPoolCfg =
> >          ThreadPoolConfig.defaultConfig();
> >          selectorPoolCfg.setCorePoolSize(selectorPoolSize).setMaxPoolSize(selectorPoolSize);
> >
> >          final int workerPoolSize =
> >          Runtime.getRuntime().availableProcessors() * 2 ;
> >          final ThreadPoolConfig workerPoolCfg =
> >          ThreadPoolConfig.defaultConfig();
> >          workerPoolCfg.setCorePoolSize(workerPoolSize).setMaxPoolSize(workerPoolSize);
> >
> >         final TCPNIOTransport tcpTransport =
> >         TCPNIOTransportBuilder.newInstance()
> >                  .setReuseAddress(true)
> >                  .setIOStrategy(WorkerThreadIOStrategy.getInstance())
> >                  .setSelectorThreadPoolConfig(selectorPoolCfg)
> >                  .setWorkerThreadPoolConfig(workerPoolCfg)
> >                  .build();
> >          try {
> >              tcpTransport.start();
> >          } finally {
> >              tcpTransport.shutdownNow();
> >          }
> >      }
> >
> >
> > Tigran.
> >
> >
> >
> > ----- Original Message -----
> >> From: "Oleksiy Stashok" <[hidden email]>
> >> To: [hidden email]
> >> Sent: Friday, March 14, 2014 1:25:16 AM
> >> Subject: Re: [PATCH] adjust selector count on
> >> NIOTransportBuilder#setSelectorThreadPoolConfig
> >>
> >> Hi Tigran,
> >>
> >> I've commited this fix:
> >> https://github.com/GrizzlyNIO/grizzly-mirror/commit/55273b6750a191b113f67de515cefc0c96e45758
> >>
> >> with the following change [1], which still haven't reached github mirror.
> >>
> >> What do you think?
> >>
> >> WBR,
> >> Alexey.
> >>
> >>
> >> [1]
> >>
> >> Revisions:
> >> ----------
> >> fbef39556a11f8f0fc6b767ab56621473d2f7da0
> >>
> >>
> >> Modified Paths:
> >> ---------------
> >> modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> >>
> >>
> >> Diffs:
> >> ------
> >> ---
> >> a/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> >> +++
> >> b/modules/grizzly/src/main/java/org/glassfish/grizzly/nio/NIOTransport.java
> >> @@ -196,7 +196,8 @@ public abstract class NIOTransport extends
> >> AbstractTransport
> >>        public void setSelectorRunnersCount(final int selectorRunnersCount)
> >>        {
> >>            if (selectorRunnersCount > 0) {
> >>                this.selectorRunnersCount = selectorRunnersCount;
> >> -            if (kernelPoolConfig != null) {
> >> +            if (kernelPoolConfig != null &&
> >> +                    kernelPoolConfig.getMaxPoolSize() <
> >> selectorRunnersCount) {
> >>                    kernelPoolConfig.setCorePoolSize(selectorRunnersCount)
> >>                                    .setMaxPoolSize(selectorRunnersCount);
> >>                }
> >> @@ -424,8 +425,8 @@ public abstract class NIOTransport extends
> >> AbstractTransport
> >>                                .setPoolName("grizzly-nio-kernel");
> >>                    }
> >>                    kernelPoolConfig.setMemoryManager(memoryManager);
> >> -                if (kernelPoolConfig.getCorePoolSize() <
> >> selectorRunnersCnt)
> >> {
> >> -                    throw new IllegalStateException("The min threads
> >> count
> >> of the kernel ThreadPool has to be larger or equal to the
> >> selectorRunnersCount");
> >> +                if (kernelPoolConfig.getMaxPoolSize() <
> >> selectorRunnersCnt)
> >> {
> >> +                    throw new IllegalStateException("The max threads
> >> count
> >> of the kernel ThreadPool has to be larger or equal to the
> >> selectorRunnersCount");
> >>                    }
> >>                    setKernelPool0(
> >>                            GrizzlyExecutorService.createInstance(
> >>
> >>
> >>
> >> On 13.03.14 01:32, Tigran Mkrtchyan wrote:
> >>> Signed-off-by: Tigran Mkrtchyan <[hidden email]>
> >>> ---
> >>>    .../src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java     |
> >>>    5
> >>>    +++++
> >>>    1 file changed, 5 insertions(+)
> >>>
> >>> diff --git
> >>> a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> >>> b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> >>> index 9cc98cf..8630c8b4 100644
> >>> ---
> >>> a/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> >>> +++
> >>> b/modules/grizzly/src/main/java/org/glassfish/grizzly/NIOTransportBuilder.java
> >>> @@ -149,6 +149,11 @@ public abstract class NIOTransportBuilder<T extends
> >>> NIOTransportBuilder> {
> >>>         */
> >>>        public T setSelectorThreadPoolConfig(final ThreadPoolConfig
> >>>        threadPoolConfig) {
> >>>            transport.setKernelThreadPoolConfig(threadPoolConfig);
> >>> +        /*
> >>> +         * selector runners count MUST not be greater than number of
> >>> threads in the pool
> >>> +         */
> >>> +        int selectorRunnersCount =
> >>> Math.min(threadPoolConfig.getMaxPoolSize(),
> >>> transport.getSelectorRunnersCount());
> >>> +        transport.setSelectorRunnersCount(selectorRunnersCount);
> >>>            return getThis();
> >>>        }
> >>>    
> >>
>
>
Loading...