Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 95792 invoked from network); 9 Mar 2010 12:19:39 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 9 Mar 2010 12:19:39 -0000 Received: (qmail 10076 invoked by uid 500); 9 Mar 2010 12:19:12 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 10028 invoked by uid 500); 9 Mar 2010 12:19:12 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 10020 invoked by uid 99); 9 Mar 2010 12:19:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Mar 2010 12:19:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Mar 2010 12:19:09 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5D9DD238897F; Tue, 9 Mar 2010 12:18:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r920827 - in /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport: nio/SelectorManager.java nio/SelectorWorker.java stomp/StompNIOTransport.java Date: Tue, 09 Mar 2010 12:18:48 -0000 To: commits@activemq.apache.org From: dejanb@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100309121848.5D9DD238897F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dejanb Date: Tue Mar 9 12:18:47 2010 New Revision: 920827 URL: http://svn.apache.org/viewvc?rev=920827&view=rev Log: https://issues.apache.org/activemq/browse/AMQ-2440 - fixing bug on marking worker as non empty Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorWorker.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompNIOTransport.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java?rev=920827&r1=920826&r2=920827&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorManager.java Tue Mar 9 12:18:47 2010 @@ -99,7 +99,7 @@ public final class SelectorManager { } public synchronized void onWorkerNotFullEvent(SelectorWorker worker) { - freeWorkers.add(worker); + freeWorkers.addFirst(worker); } public Executor getChannelExecutor() { Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorWorker.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorWorker.java?rev=920827&r1=920826&r2=920827&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorWorker.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/nio/SelectorWorker.java Tue Mar 9 12:18:47 2010 @@ -53,7 +53,7 @@ public class SelectorWorker implements R int use = retainCounter.decrementAndGet(); if (use == 0) { manager.onWorkerEmptyEvent(this); - } else if (use < maxChannelsPerWorker) { + } else if (use == maxChannelsPerWorker - 1) { manager.onWorkerNotFullEvent(this); } } @@ -68,18 +68,15 @@ public class SelectorWorker implements R selector.wakeup(); } - private boolean processIoTasks() { - boolean rc = false; + private void processIoTasks() { Runnable task; while( (task= ioTasks.poll()) !=null ) { try { - rc = true; task.run(); } catch (Throwable e) { e.printStackTrace(); } } - return rc; } @@ -90,11 +87,11 @@ public class SelectorWorker implements R try { Thread.currentThread().setName("Selector Worker: " + id); while (!isReleased()) { - - if( processIoTasks() ) { - continue; - } - int count = selector.select(10); + + processIoTasks(); + + int count = selector.select(10); + if (count == 0) { continue; } @@ -134,8 +131,8 @@ public class SelectorWorker implements R } } - - } catch (Throwable e) { + } catch (Throwable e) { + e.printStackTrace(); // Notify all the selections that the error occurred. Set keys = selector.keys(); for (Iterator i = keys.iterator(); i.hasNext();) { @@ -143,12 +140,12 @@ public class SelectorWorker implements R SelectorSelection s = (SelectorSelection)key.attachment(); s.onError(e); } - } finally { try { manager.onWorkerEmptyEvent(this); selector.close(); } catch (IOException ignore) { + ignore.printStackTrace(); } Thread.currentThread().setName(origName); } Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompNIOTransport.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompNIOTransport.java?rev=920827&r1=920826&r2=920827&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompNIOTransport.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/StompNIOTransport.java Tue Mar 9 12:18:47 2010 @@ -145,6 +145,7 @@ public class StompNIOTransport extends T try { selection.close(); } catch (Exception e) { + e.printStackTrace(); } super.doStop(stopper); }