Author: rgodfrey
Date: Fri Nov 13 17:17:05 2015
New Revision: 1714242
URL: http://svn.apache.org/viewvc?rev=1714242&view=rev
Log:
QPID-6794 : Address review comments from [~k-wall]
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java?rev=1714242&r1=1714241&r2=1714242&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NetworkConnectionScheduler.java
Fri Nov 13 17:17:05 2015
@@ -100,57 +100,49 @@ public class NetworkConnectionScheduler
void processConnection(final NonBlockingConnection connection)
{
- Thread.currentThread().setName( connection.getThreadName() );
- try
+ Thread.currentThread().setName(connection.getThreadName());
+ boolean rerun;
+ do
{
- incrementRunningCount();
- boolean rerun;
- do
+ rerun = false;
+ boolean closed = connection.doWork();
+
+ if (!closed && connection.getScheduler() == this)
{
- rerun = false;
- boolean closed = connection.doWork();
- if (!closed && connection.getScheduler() == this)
+ if (connection.isStateChanged() || connection.isPartialRead())
{
-
- if (connection.isStateChanged() ||
connection.isPartialRead())
+ if (_running.get() == _poolSize)
{
- if (_running.get() == _poolSize)
- {
- connection.clearScheduled();
- schedule(connection);
- }
- else
- {
- rerun = true;
- }
+ connection.clearScheduled();
+ schedule(connection);
}
else
{
- connection.clearScheduled();
- if(connection.isStateChanged())
- {
- _selectorThread.addToWork(connection);
- }
- else
- {
-
_selectorThread.returnConnectionToSelector(connection);
- }
+ rerun = true;
}
}
- else if(connection.getScheduler() != this)
+ else
{
- removeConnection(connection);
connection.clearScheduled();
- connection.getScheduler().addConnection(connection);
+ if (connection.isStateChanged())
+ {
+ _selectorThread.addToWork(connection);
+ }
+ else
+ {
+ _selectorThread.returnConnectionToSelector(connection);
+ }
}
+ }
+ else if (connection.getScheduler() != this)
+ {
+ removeConnection(connection);
+ connection.clearScheduled();
+ connection.getScheduler().addConnection(connection);
+ }
- } while (rerun);
- }
- finally
- {
- decrementRunningCount();
- }
+ } while (rerun);
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java?rev=1714242&r1=1714241&r2=1714242&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/SelectorThread.java
Fri Nov 13 17:17:05 2015
@@ -334,7 +334,7 @@ class SelectorThread extends Thread
_workQueue.add(this);
for (ConnectionProcessor connectionProcessor :
connections)
{
- connectionProcessor.run();
+ connectionProcessor.processConnection();
}
}
@@ -481,7 +481,20 @@ class SelectorThread extends Thread
@Override
public void run()
{
- if(_running.compareAndSet(false,true))
+ _scheduler.incrementRunningCount();
+ try
+ {
+ processConnection();
+ }
+ finally
+ {
+ _scheduler.decrementRunningCount();
+ }
+ }
+
+ public void processConnection()
+ {
+ if (_running.compareAndSet(false, true))
{
_scheduler.processConnection(_connection);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]