gpt4 book ai didi

c++ - Windows 10 上 PortMidi 中的死锁

转载 作者:行者123 更新时间:2023-11-30 02:22:59 26 4
gpt4 key购买 nike

我的代码正在使用 PortMidi好几年了。
我用它来编写可移植的 C++ 代码来控制 Mackie 类型的外部 MIDI 表面控制 .
我使用的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 问题和/或如何解决它吗?

非常感谢,帕兹

最佳答案

4 个月后...
在调试时我发现如果你使用这个问题也存在 Microsoft MIDI API直接。
因此,我打开了与 Microsoft 的 Premier Support Call
经过长时间的调查(四个月),Microsoft 确认这是 Microsoft WinMM API 实现中的一个缺陷,“...没有正确处理 PNP 删除...”
< br/>我被告知将在 RS5 时间范围内发布对此的修复。


11 个月后......
作为处理我的Premier Support Call 的一部分,Microsoft 发布了public KB article来描述这个问题。

关于c++ - Windows 10 上 PortMidi 中的死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46647232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com