Index: Source/modules/webaudio/ConvolverNode.cpp |
diff --git a/Source/modules/webaudio/ConvolverNode.cpp b/Source/modules/webaudio/ConvolverNode.cpp |
index 36a473f5f4f58cc6649a429c2af5f1f7903032cf..fcea79f64ca104fcf50c8591aea69b1390de7455 100644 |
--- a/Source/modules/webaudio/ConvolverNode.cpp |
+++ b/Source/modules/webaudio/ConvolverNode.cpp |
@@ -158,7 +158,12 @@ AudioBuffer* ConvolverNode::buffer() |
double ConvolverNode::tailTime() const |
{ |
- return m_reverb ? m_reverb->impulseResponseLength() / static_cast<double>(sampleRate()) : 0; |
+ MutexTryLocker tryLocker(m_processLock); |
+ if (tryLocker.locked()) |
+ return m_reverb ? m_reverb->impulseResponseLength() / static_cast<double>(sampleRate()) : 0; |
+ // Since we don't want to block the Audio Device thread, we return a large value |
+ // instead of trying to acquire the lock. |
+ return std::numeric_limits<double>::infinity(); |
} |
double ConvolverNode::latencyTime() const |