Can we acquire the ICE mutex explicitly to enforce ordering
We have a legacy construct in our code from back in the day in ICE 2.x when there was a thread per connection instead of a threadpool. I don't know if that changed mutex behavior in ICE, or if we have always been exposed. We have a deadlock during unexpected disconnects. Incoming Ice invocations have an ICE lock and attempt to acquire a domain lock while a cleanup thread has the domain lock and attempts to make an outbound ICE invocation.
This code needs to be redesigned, however we're considering options for a low risk short term fix.
Is it possible to grab the ICE lock on our thread that makes the outbound invocation explicitly, such that we can acquire it before our domain lock to avoid the deadlock?