2017-10-09 10 views
0

私のコードでは、数年前からPortMidiが使用されています。
外部のMIDIサーフェスコントロールMackieのコントロールのためのポータブルC++コードの作成に使用します。
私はPortMidi最新バージョンを使用しています:20101008

最近、Windows 10でコントロールが頻繁に使用されると、デッドロックが発生することがわかりました。 これは、Windows 10のでのみ発生します。

デッドロック状態で次のスレッドがスタックしている:
Windows 10のPortMidiのデッドロック

ntdll!ZwWaitForSingleObject 
KERNELBASE!WaitForSingleObjectEx 
wdmaud!CMIDIOutDevice::WriteEvent 
wdmaud!CMIDIOutDevice::PlaySysEx 
wdmaud!HwModMessage 
wdmaud!dspsL 
WINMMBASE!midiMessage 
WINMMBASE!midiOutLongMsg 
MIDICommunication!winmm_write_flush 
MIDICommunication!Pm_WriteSysEx 

を私はコードがイベント(ないロック)を待っていることがわかったデバッガを使用します。

WindowsMacのPortMidiの問題やその回避方法を知っている人はいますか?

多くのおかげで、ラパス

+0

Win10は[厄介なことが知られています](https://stackoverflow.com/a/32553208/17034)。あなたがそれについて嘘をつけていないことを確認してください。あなたが間違った価値を渡すと、デッドロックが発生します。 –

答えて

0

4ヶ月後に...

私はあなたが直接 Microsoft MIDI APIを使用している場合、この問題も存在していることが分かったデバッグ中。
これにより、プレミアサポートコールがMicrosoftに開設されました。
長時間の調査(4か月)後、マイクロソフトは、これがMicrosoft WinMM API実装の欠陥であることを確認しました。"... PNP除去を適切に処理しません..."

これについての修正はRS5のタイムフレーム内に発行されることを忠告されました。

関連する問題