diff options
author | Marc Laukien <marc@zeroc.com> | 2002-04-13 18:04:03 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-04-13 18:04:03 +0000 |
commit | 08891cda4a66457aad4fd833df46d85190dbcc8b (patch) | |
tree | 3f21f1956e88f83e01684b97d9039b252d3ea2b9 /cpp | |
parent | default identity fixed (diff) | |
download | ice-08891cda4a66457aad4fd833df46d85190dbcc8b.tar.bz2 ice-08891cda4a66457aad4fd833df46d85190dbcc8b.tar.xz ice-08891cda4a66457aad4fd833df46d85190dbcc8b.zip |
glacier fixes
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/demo/Ice/callback/config | 22 | ||||
-rw-r--r-- | cpp/demo/Ice/callback/config.server | 14 | ||||
-rw-r--r-- | cpp/src/Ice/Connection.cpp | 30 |
3 files changed, 41 insertions, 25 deletions
diff --git a/cpp/demo/Ice/callback/config b/cpp/demo/Ice/callback/config index 960cc454547..a70541b59e0 100644 --- a/cpp/demo/Ice/callback/config +++ b/cpp/demo/Ice/callback/config @@ -1,19 +1,19 @@ -Callback.Callback=callback:tcp -p 10000:udp -p 10000:ssl -p 10001 -Ice.Adapter.CallbackReceiverAdapter.Endpoints=tcp:udp:ssl +Callback.Callback=callback:tcp -p 10000:udp -p 10000#:ssl -p 10001 +Ice.Adapter.CallbackReceiverAdapter.Endpoints=tcp:udp#:ssl #Ice.Trace.Security=1 -#Ice.Trace.Network=3 -#Ice.Trace.Protocol=1 -#Ice.ConnectionWarnings=1 +Ice.Trace.Network=1 +Ice.Trace.Protocol=1 +Ice.ConnectionWarnings=1 -Ice.SSL.Client.CertPath=../../../certs -Ice.SSL.Client.Config=sslconfig.xml -Ice.SSL.Server.CertPath=../../../certs -Ice.SSL.Server.Config=sslconfig.xml +#Ice.SSL.Client.CertPath=../../../certs +#Ice.SSL.Client.Config=sslconfig.xml +#Ice.SSL.Server.CertPath=../../../certs +#Ice.SSL.Server.Config=sslconfig.xml Glacier.Router.Endpoints=default -p 10005 -Glacier.Client.Endpoints=tcp:udp -c:ssl -Glacier.Server.Endpoints=tcp:udp:ssl +Glacier.Client.Endpoints=tcp:udp -c#:ssl +Glacier.Server.Endpoints=tcp:udp#:ssl Glacier.Trace.Client=2 Glacier.Trace.Server=2 Glacier.Trace.RoutingTable=1 diff --git a/cpp/demo/Ice/callback/config.server b/cpp/demo/Ice/callback/config.server index 7891d1bbbf6..5a890af1822 100644 --- a/cpp/demo/Ice/callback/config.server +++ b/cpp/demo/Ice/callback/config.server @@ -1,11 +1,11 @@ -Ice.Adapter.CallbackAdapter.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001 +Ice.Adapter.CallbackAdapter.Endpoints=tcp -p 10000:udp -p 10000#:ssl -p 10001 #Ice.Trace.Network=3 -#Ice.Trace.Protocol=1 -#Ice.ConnectionWarnings=1 +Ice.Trace.Protocol=1 +Ice.ConnectionWarnings=1 -Ice.SSL.Client.CertPath=../../../certs -Ice.SSL.Client.Config=sslconfig.xml -Ice.SSL.Server.CertPath=../../../certs -Ice.SSL.Server.Config=sslconfig.xml +#Ice.SSL.Client.CertPath=../../../certs +#Ice.SSL.Client.Config=sslconfig.xml +#Ice.SSL.Server.CertPath=../../../certs +#Ice.SSL.Server.Config=sslconfig.xml diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp index 81e43236ce0..9bc3b1dbde9 100644 --- a/cpp/src/Ice/Connection.cpp +++ b/cpp/src/Ice/Connection.cpp @@ -63,7 +63,8 @@ IceInternal::Connection::decProxyUsageCount() { IceUtil::RecMutex::Lock sync(*this); assert(_proxyUsageCount > 0); - if (--_proxyUsageCount == 0) + --_proxyUsageCount; + if (_proxyUsageCount == 0 && !_adapter) { assert(_requests.empty()); setState(StateClosing); @@ -252,17 +253,32 @@ IceInternal::Connection::setAdapter(const ObjectAdapterPtr& adapter) { IceUtil::RecMutex::Lock sync(*this); - if (adapter && !_adapter) + // + // In closed and holding state, we are not registered with the + // thread pool. For all other states, we have to notify the thread + // pool in case this event handler changed from a client to a + // server or vice versa. + // + if (_state != StateHolding && _state != StateClosed) { - _threadPool->clientIsNowServer(); + if (adapter && !_adapter) + { + _threadPool->clientIsNowServer(); + } + + if (!adapter && _adapter) + { + _threadPool->serverIsNowClient(); + } } - if (!adapter && _adapter) + _adapter = adapter; + + if (_proxyUsageCount == 0 && !_adapter) { - _threadPool->serverIsNowClient(); + assert(_requests.empty()); + setState(StateClosing); } - - _adapter = adapter; } ObjectAdapterPtr |