From 46c2f0d25200b8ef6b3d0bb1f2b2828cdd3aaab8 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 14 Jun 2007 10:10:14 +0000 Subject: [PATCH] tweak to avoid deadlocks in wavelab --- .../wrapper/formats/VST/juce_VstWrapper.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp b/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp index 14f48194c8..8c81638a1a 100644 --- a/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp +++ b/extras/audio plugins/wrapper/formats/VST/juce_VstWrapper.cpp @@ -847,18 +847,22 @@ public: void doIdleCallback() { - if (! recursionCheck) + // (wavelab calls this on a separate thread and causes a deadlock).. + if (MessageManager::getInstance()->isThisTheMessageThread()) { - const MessageManagerLock mml; + if (! recursionCheck) + { + const MessageManagerLock mml; - recursionCheck = true; + recursionCheck = true; - juce_callAnyTimersSynchronously(); + juce_callAnyTimersSynchronously(); - for (int i = ComponentPeer::getNumPeers(); --i >= 0;) - ComponentPeer::getPeer (i)->performAnyPendingRepaintsNow(); + for (int i = ComponentPeer::getNumPeers(); --i >= 0;) + ComponentPeer::getPeer (i)->performAnyPendingRepaintsNow(); - recursionCheck = false; + recursionCheck = false; + } } }