[PATCH 1/5] user32/tests: Add more tests for windows destroyed by thread exit.
Jacek Caban
jacek at codeweavers.com
Tue Feb 1 14:59:29 CST 2022
Hi Rémi,
On 2/1/22 15:52, Rémi Bernon wrote:
> On 2/1/22 15:12, Jacek Caban wrote:
>> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
>> ---
>> dlls/user32/tests/msg.c | 33 +++++++++++++++++++++++++++++++++
>> 1 file changed, 33 insertions(+)
>>
>
> Hi Jacek!
>
> I've been trying to fix this for quite some time as I believe we have
> a race condition in thread destroy and that causes some spurious
> user32:msg test failures already.
>
> I wrote a few more tests (attached) before to check Windows behavior
> and they don't pass with your changes.
>
> I also had several variations of the fix, and I'm attaching the last
> one for reference, although I understand PATCH 3 and 4 which are
> changing the parent pointer semantics on the wineserver side is a bit
> risky.
>
> From the errors returned by window functions it doesn't look
> completely off though (some functions fail in the same way for desktop
> window and for orphaned windows, both not having a parent).
>
> Note that my fix then doesn't pass your WM_NCDESTROY parent test either.
Thanks, those patches look interesting. I tested your tests from the
first two patches. Most of failures are not strictly related to
destroying window on thread exit, they fail the same way when normal
DestroyWindow() is used. I attached a patch that confirms that with
tests and has a quick fix for that. I still need to look at todo_wine
around IsWindow(child3) test.
Thanks,
Jacek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 9828 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20220201/35d6127b/attachment.bin>
More information about the wine-devel
mailing list