Author: fhanik
Date: Tue Dec 9 14:33:08 2008
New Revision: 724919
URL: http://svn.apache.org/viewvc?rev=724919&view=rev
Log:
cleanup methods not used, and correct methods that used the old thread stats
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=724919&r1=724918&r2=724919&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Tue Dec 9
14:33:08 2008
@@ -40,6 +40,7 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
@@ -133,24 +134,6 @@
* Track the initialization state of the endpoint.
*/
protected boolean initialized = false;
-
-
- /**
- * Current worker threads busy count.
- */
- protected int curThreadsBusy = 0;
-
-
- /**
- * Current worker threads count.
- */
- protected int curThreads = 0;
-
-
- /**
- * Sequence number used to generate thread names.
- */
- protected int sequence = 0;
protected NioSelectorPool selectorPool = new NioSelectorPool();
@@ -746,7 +729,13 @@
* @return the amount of threads that are managed by the pool
*/
public int getCurrentThreadCount() {
- return curThreads;
+ final Executor executor = this.executor;
+ if (executor!=null) {
+ if (executor instanceof java.util.concurrent.ThreadPoolExecutor) {
+ return
((java.util.concurrent.ThreadPoolExecutor)executor).getPoolSize();
+ }
+ }
+ return 0;
}
@@ -756,7 +745,13 @@
* @return the amount of threads currently busy
*/
public int getCurrentThreadsBusy() {
- return curThreadsBusy;
+ final Executor executor = this.executor;
+ if (executor!=null) {
+ if (executor instanceof java.util.concurrent.ThreadPoolExecutor) {
+ return
((java.util.concurrent.ThreadPoolExecutor)executor).getPoolSize();
+ }
+ }
+ return activeSocketProcessors.get();
}
@@ -979,13 +974,6 @@
// ------------------------------------------------------ Protected Methods
- /**
- * Get a sequence number used for thread naming.
- */
- protected int getSequence() {
- return sequence++;
- }
-
public int getWriteBufSize() {
return socketProperties.getTxBufSize();
}
@@ -1147,6 +1135,10 @@
else sc.reset(socket,status);
if ( dispatch && executor!=null ) executor.execute(sc);
else sc.run();
+ } catch (RejectedExecutionException rx) {
+ if (log.isDebugEnabled()) {
+ log.debug("Unable to process socket, executor rejected the
task.",rx);
+ }
} catch (Throwable t) {
// This means we got an OOM or similar creating a thread, or that
// the pool and its queue are full
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]