Hi,
this Fixes bug #28388
I think it is not a good idea to defer this patch until after 1.4.0.
Every app using midiStreamOpen eventually calls SuspendThread which is simply a time bomb on a dual core machine. There are many more multi-core machines now, so the situation degrades.
Dan Kegel wrote:
With WINEDEBUG=warn+heap, it happens a lot sooner (first run: first try; second run: sixth try).
As noted in the bug report, SuspendThread can hit Wine amid memory management, breaking havoc. Users won't know who to blame for random lock-ups and complain like I did that Wine isn't able to generate a backtrace.
Patch 1/2 can be applied stand alone. It gets rid of SuspendThread.
It's been a pleasure to use patch 2/2 and hear apps play midiStream music without trouble. I wouldn't mind if you defer that for 1.4.1. After all, this is a feature that has been lacking in Wine for the last 10 years, so people can wait a little more...
Regards, Jörg Höhle
Joerg-Cyril.Hoehle@t-systems.com writes:
I don't see any apps in that bug report, it's only about a test failure. Do you have real apps that trigger the problem in normal usage?
I don't see any apps in that bug report, it's only about a test failure. Do you have real apps that trigger the problem in normal usage?
The two apps from #26997 #23756 use midiStream with DCB_CALLBACK_FUNCTION. They need patch 1+2.
I've not retested ff7 from bug #9220 which uses midiStream too.
The apps that would benefit from patch 1/2 alone are those that use midiStream with one of DCB_NULL, WINDOW or EVENT.
I've not investigated which MIDI apps are of the required kind or if they use mcimidi, midiOut directly or midiStream with DCB_FUNCTION.
Regards, Jörg Höhle