summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Connection.java
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2003-10-01 15:21:21 +0000
committerMarc Laukien <marc@zeroc.com>2003-10-01 15:21:21 +0000
commite1cb43f62b269c157dfd544c5c22a3fa5f95f266 (patch)
tree3a85a883e20076a604f429020a6feca38c2b7c8b /java/src/IceInternal/Connection.java
parentRemoved DB, cleaned up configuration (diff)
downloadice-e1cb43f62b269c157dfd544c5c22a3fa5f95f266.tar.bz2
ice-e1cb43f62b269c157dfd544c5c22a3fa5f95f266.tar.xz
ice-e1cb43f62b269c157dfd544c5c22a3fa5f95f266.zip
bi-dir now uses client thread pool
Diffstat (limited to 'java/src/IceInternal/Connection.java')
-rw-r--r--java/src/IceInternal/Connection.java50
1 files changed, 11 insertions, 39 deletions
diff --git a/java/src/IceInternal/Connection.java b/java/src/IceInternal/Connection.java
index 80c6f6bd784..7916605fee3 100644
--- a/java/src/IceInternal/Connection.java
+++ b/java/src/IceInternal/Connection.java
@@ -743,28 +743,10 @@ public final class Connection extends EventHandler
setAdapter(Ice.ObjectAdapter adapter)
{
//
- // We are registered with a thread pool in active and closing
- // mode. However, we only change subscription if we're in active
- // mode, and thus ignore closing mode here.
+ // We never change the thread pool with which we were
+ // initially registered, even if we add or remove an object
+ // adapter.
//
- if(_state == StateActive)
- {
- if(adapter != null && _adapter == null)
- {
- //
- // Client is now server.
- //
- unregisterWithPool();
- }
-
- if(adapter == null && _adapter != null)
- {
- //
- // Server is now client.
- //
- unregisterWithPool();
- }
- }
_adapter = adapter;
if(_adapter != null)
@@ -1116,6 +1098,7 @@ public final class Connection extends EventHandler
{
_transceiver.close();
_transceiver = null;
+ _threadPool = null; // We don't need the thread pool anymore.
notifyAll();
}
}
@@ -1155,10 +1138,12 @@ public final class Connection extends EventHandler
if(_adapter != null)
{
+ _threadPool = ((Ice.ObjectAdapterI)_adapter).getThreadPool();
_servantManager = ((Ice.ObjectAdapterI)_adapter).getServantManager();
}
else
{
+ _threadPool = _instance.clientThreadPool();
_servantManager = null;
}
}
@@ -1382,15 +1367,8 @@ public final class Connection extends EventHandler
{
if(!_registeredWithPool)
{
- if(_adapter != null)
- {
- ((Ice.ObjectAdapterI)_adapter).getThreadPool()._register(_transceiver.fd(), this);
- }
- else
- {
- _instance.clientThreadPool()._register(_transceiver.fd(), this);
- }
-
+ assert(_threadPool != null);
+ _threadPool._register(_transceiver.fd(), this);
_registeredWithPool = true;
ConnectionMonitor connectionMonitor = _instance.connectionMonitor();
@@ -1406,15 +1384,8 @@ public final class Connection extends EventHandler
{
if(_registeredWithPool)
{
- if(_adapter != null)
- {
- ((Ice.ObjectAdapterI)_adapter).getThreadPool().unregister(_transceiver.fd());
- }
- else
- {
- _instance.clientThreadPool().unregister(_transceiver.fd());
- }
-
+ assert(_threadPool != null);
+ _threadPool.unregister(_transceiver.fd());
_registeredWithPool = false;
ConnectionMonitor connectionMonitor = _instance.connectionMonitor();
@@ -1521,6 +1492,7 @@ public final class Connection extends EventHandler
private final TraceLevels _traceLevels;
private boolean _registeredWithPool;
+ private ThreadPool _threadPool;
private boolean _warn;