【发布时间】:2017-10-09 13:05:40
【问题描述】:
我的代码已经使用PortMidi 好几年了。
我用它来编写可移植的 C++ 代码来控制 Mackie 类型的外部 MIDI Surface Control。
我使用 PortMidi 最新版本:20101008
最近我们发现当该控件在 Windows 10 上被广泛使用,我们收到了死锁。 这仅在 Windows 10 上发生。
当处于死锁状态时,以下线程被卡住:
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
使用调试器,我发现代码正在等待事件(不是锁)。
有人知道 Windows 10 上的 PortMidi 问题和/或如何解决它吗?
非常感谢,帕兹
【问题讨论】:
-
Win10 是known to be troublesome。请确保您没有撒谎,如果您传递了错误的值,您将陷入僵局。
标签: c++ windows-10 midi