You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/09 07:45:53 UTC

svn commit: r593431 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/executor: OrderedThreadPoolExecutor.java UnorderedThreadPoolExecutor.java

Author: trustin
Date: Thu Nov  8 22:45:51 2007
New Revision: 593431

URL: http://svn.apache.org/viewvc?rev=593431&view=rev
Log:
* Made sure IoEventQueueHandler.polled() is called on shutdownNow()
* Disabled purge()

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java?rev=593431&r1=593430&r2=593431&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java Thu Nov  8 22:45:51 2007
@@ -260,7 +260,10 @@
             
             SessionBuffer buf = (SessionBuffer) session.getAttribute(BUFFER);
             synchronized (buf.queue) {
-                answer.addAll(buf.queue);
+                for (Runnable task: buf.queue) {
+                    getQueueHandler().polled(this, (IoEvent) task);
+                    answer.add(task);
+                }
                 buf.queue.clear();
             }
         }
@@ -387,7 +390,7 @@
     
     @Override
     public BlockingQueue<Runnable> getQueue() {
-        throw new UnsupportedOperationException("Please use getQueue(Runnable) instead.");
+        throw new UnsupportedOperationException();
     }
     
     @Override
@@ -404,9 +407,16 @@
             return false;
         }
         
+        boolean removed;
         synchronized (buffer.queue) {
-            return buffer.queue.remove(task);
+            removed = buffer.queue.remove(task);
+        }
+        
+        if (removed) {
+            getQueueHandler().polled(this, e);
         }
+        
+        return removed;
     }
     
     @Override

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java?rev=593431&r1=593430&r2=593431&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java Thu Nov  8 22:45:51 2007
@@ -259,6 +259,7 @@
                 continue;
             }
             
+            getQueueHandler().polled(this, (IoEvent) task);
             answer.add(task);
         }
         
@@ -363,6 +364,19 @@
         }
     }
     
+    @Override
+    public void purge() {
+    }
+
+    @Override
+    public boolean remove(Runnable task) {
+        boolean removed = super.remove(task);
+        if (removed) {
+            getQueueHandler().polled(this, (IoEvent) task);
+        }
+        return removed;
+    }
+
     @Override
     public int getCorePoolSize() {
         return corePoolSize;