On Thu, Sep 13, 2018 at 12:12:09PM -0500, Sergio Gómez Del Real wrote:
I'm not sure how to add a test case here:
The issue is in apartment_release(), but specifically when the count drops to 0 so that apartment gets destroyed. This function doesn't have a means to communicate errors when releasing resources fail while destroying apartment; it just returns a DWORD with the reference count.
As far as I can tell, there isn't any call to apartment_release() that relies on the DWORD returned; we could return a special value here upon failure releasing any resource, although I don't think that would be useful in general (it would only be useful to the test case).
Yeah, ok. However you can't hold the apt list crit section while calling CoReleaseMarshalData() as that may have to call out to other apts.
Huw.