mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-14 12:30:00 +02:00
Add a limit to all Win32 message loops #28
This works around Waves plugins causing an infinite message loop. Since we run the loop 30 times per second anyways splitting the loop up into chunks of 20 shouldn't be an issue.
This commit is contained in:
@@ -262,12 +262,14 @@ void GroupBridge::async_handle_events() {
|
||||
MSG msg;
|
||||
|
||||
// Keep the loop responsive by not handling too many events at once
|
||||
// TODO: For some reason the Melda plugins run into a seemingly
|
||||
// infinite timer loop for a little while after opening a
|
||||
// second editor. Without this limit everything will get
|
||||
// blocked indefinitely. How could this be fixed?
|
||||
for (int i = 0;
|
||||
i < 20 && PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE); i++) {
|
||||
//
|
||||
// For some reason the Melda plugins run into a seemingly infinite
|
||||
// timer loop for a little while after opening a second editor.
|
||||
// Without this limit everything will get blocked indefinitely. How
|
||||
// could this be fixed?
|
||||
for (int i = 0; i < max_win32_messages &&
|
||||
PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE);
|
||||
i++) {
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user