Skip to content

Draft: combase: CoMsgWaitForMultipleHandles message pump.

Kevin Puetz requested to merge puetzk/wine:CoMsgWaitForMultipleHandles into master

This sequence of patches fixes numerous corner cases in CoMsgWaitForMultipleHandles, particularly around the exact sequence in which signaled handles, windows messages, and APCs are considered and which "win" if more than one thing has happened at a time.

This was previously submitted quite some time ago, and rejected as "Needs splitting": https://www.winehq.org/pipermail/wine-devel/2020-November/177529.html Sorry it has taken me so long to get back to this one, but here's an attempt to tease it apart into a number of smaller commits that each make smaller changes and add some of the new tests. Hopefully that makes it easier to follow which change fixes what. Apologies if the splitting is still a little tortured in places, since it re-thought all at once and then split apart, not developed in this order and then squashed. But hopefully this is more readable.

Major fixes are:

There's also a some new todo_wine tests for spurious calls to IMessageFilter_MessagePending. This behavior has not changed, but I expanded the test coverage (unsuccessfully) hoping it would give me a hint about what should change. Since I still don't know what the rules should be, I left the new tests todo_wine. But maybe they'll be a useful hint someday.

Edited by Kevin Puetz

Merge request reports

Loading