diff options
author | Marc Laukien <marc@zeroc.com> | 2003-10-01 15:21:21 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2003-10-01 15:21:21 +0000 |
commit | e1cb43f62b269c157dfd544c5c22a3fa5f95f266 (patch) | |
tree | 3a85a883e20076a604f429020a6feca38c2b7c8b /java/src/IceInternal/Connection.java | |
parent | Removed DB, cleaned up configuration (diff) | |
download | ice-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.java | 50 |
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; |