To test this I modified the bidir demo as follows:
Code:
class CallbackReceiverI : public CallbackReceiver
{
public:
virtual void
callback(Ice::Int num, const Ice::Current& c)
{
cout << "received callback #" << num << endl;
if(num % 3 == 2)
{
cout << "Shutting down..." << endl;
c.adapter->getCommunicator()->shutdown();
}
}
};
When I try this I get in the server:
adding client `e61fb1c4-d757-4bb5-bf41-4a37130937a5'
removing client `e61fb1c4-d757-4bb5-bf41-4a37130937a5':
c:\src\vc60\stage\Ice-2.1.2\src\ice\Outgoing.cpp:415: Ice::UnknownLocalException
:
unknown local exception:
c:\src\vc60\stage\Ice-2.1.2\src\ice\ConnectionFactory.cpp:446: Ice::Communicator
DestroyedException:
communicator object destroyed
Which doesn't match what you are saying. What exactly are you doing? Can you provide an example that demonstrates the problem?