ATL Server Life

I have an out of process COM server written with ATL. Under normal circumstances, the lifetime of this server is convenient for you to handle, however, if the client process dies before its interface is released, the server seems to be delayed forever.

Is there a way (or timeout, which I don't know) that allows the server to impose its shutdown routine when clients are not connected. Or am I guessing there is another way of saying how ATL / COM handles the reference count for clients that crash?

+3


source to share


1 answer


There is a timeout for stub dereference in your COM server for a few minutes, so it shouldn't last forever. However, another issue you may run into is that as part of the operations, the COM objects on your server have cross-references that were not properly released with this sudden death of the connected client. In this case, your COM object will block the lock on the server and prevent it from completing automatically as you expect.



+2


source







All Articles