Index: Source/modules/webaudio/ConvolverNode.cpp |
diff --git a/Source/modules/webaudio/ConvolverNode.cpp b/Source/modules/webaudio/ConvolverNode.cpp |
index 36a473f5f4f58cc6649a429c2af5f1f7903032cf..1b125835e673c9817518d82e5af694a2622ded2a 100644 |
--- a/Source/modules/webaudio/ConvolverNode.cpp |
+++ b/Source/modules/webaudio/ConvolverNode.cpp |
@@ -163,7 +163,12 @@ double ConvolverNode::tailTime() const |
double ConvolverNode::latencyTime() const |
{ |
- return m_reverb ? m_reverb->latencyFrames() / static_cast<double>(sampleRate()) : 0; |
+ MutexTryLocker tryLocker(m_processLock); |
+ if (tryLocker.locked()) |
+ return m_reverb ? m_reverb->latencyFrames() / 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(); |
} |
} // namespace WebCore |