In our application we observe that ORBImpl#destroy does not close the IIOP server socket.
To me it looks like in SelectorImpl there should be a listener thread to close the socket. However, the SelectorImpl#registerForEvent calls end up in the deferredRegistrations case, where no listener thread is created. The deferredRegistrations case is determined by the useSelectThreadToWait flag, which must definitely be true, because otherwise the ORB blocks completely. S. #26 for details.
In our application we observe that ORBImpl#destroy does not close the IIOP server socket.
To me it looks like in SelectorImpl there should be a listener thread to close the socket. However, the SelectorImpl#registerForEvent calls end up in the deferredRegistrations case, where no listener thread is created. The deferredRegistrations case is determined by the useSelectThreadToWait flag, which must definitely be true, because otherwise the ORB blocks completely. S. #26 for details.