https://bugs.winehq.org/show_bug.cgi?id=38143
--- Comment #8 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Alexandre Julliard from comment #7)
The tests I've added clearly show that user APCs are not supposed to be executed during GetQueuedCompletionStatus call, so my patch is wrong in that regard. On the other hand it looks like the queued APCs are never executed (and nothing in the attached application breaks) means that adding an APC to the queue as a reply to APC_ASYNC_IO request and actually executing it wasn't tested very well (if tested at all). So it raises a question whether APCs should be always generated by server, or generated at all.
To be fully compatible it should of course only generate system APCs, but we can't do that since we want to call heap functions and we can't do that asynchronously.
Alexandre, what would you suggest as possible solution(s)?
Also, could you please add a comment with possible solutions/suggestions to the bug 37669 and reply to Sebastian's attempt to introduce limited support (http://source.winehq.org/patches/data/109331) for handling write watch exceptions on signal stack? That patch (as usually) is marked as pending without a slight insight what should be changed or reworked to get this fixed properly.
Both of this problems are caused by fundamental limitations in Wine and need IMHO help from your side. Thanks in advance.