Hi,
Let's consider Client, Server1 and Server2 and following logical flow.
1. Client calls asynchronously to function foo1 implemented by a servant deployed by Server1.
2. Response/exception is received by Client's AMI_foo1 callback object.
3. In ice_response/ice_exception implemented by AMI_foo1 we call synchronously to foo2 implemented by a servant deployed by Server2.
Now, if Client runs this logic in a loop it may lead to a deadlock (deadlock's probability grows with a loop counter limit).
Workaround:
Client may call foo2 asynchronously (no deadlock for loop_counter_limit=50000 according to my tests).
Please explain this behaviour.
Environment:
Ice version: 3.3.1
System: Vista Premium 32bit
Compiler: VS 2005

Reply With Quote