<div dir="ltr">Hi, Zebediah. Thank you for your quick reply.<div><br></div><div>It was a very interesting problem and I logged the changes in object_locks.<br></div><div>In my tests, object_locks goes to 0 without system_clock_inner_Release being called.<br></div><div>The game I tested does not have a free version, so I apologize for not sharing it. The game is clickable to skip video playback, and the crash occurs when clicking.<br></div><div><br></div><div>I have attached the log of my test for your reference. Thank you,<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">2021年8月11日(水) 7:52 Zebediah Figura (she/her) <<a href="mailto:zfigura@codeweavers.com">zfigura@codeweavers.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Hiroki, thanks for the patch!<br>
<br>
On 8/10/21 5:38 PM, Hiroki Awata wrote:<br>
> Some games crash when the DLL is unloaded during SleepConditionVariableCS on SystemClockAdviseThread.<br>
> This is due to the fact that DllCanUnloadNow returns S_OK even though the advise thread is running.<br>
> Incrementing the reference count when creating the advise thread resolves it.<br>
<br>
This doesn't seem right; the system clock object itself should be <br>
holding a reference [added by DSCF_CreateInstance(), removed by <br>
system_clock_inner_Release()] and waits for the thread to stop before <br>
removing it. Are you sure we're not leaking a reference elsewhere?<br>
<br>
</blockquote></div>