Index: Source/modules/webaudio/AudioContext.h |
diff --git a/Source/modules/webaudio/AudioContext.h b/Source/modules/webaudio/AudioContext.h |
index ed31ce8b9910eae3fa5643d43b5e2232fed3b51d..f8d09b96145d89410642a2f34dc71535aaf680ae 100644 |
--- a/Source/modules/webaudio/AudioContext.h |
+++ b/Source/modules/webaudio/AudioContext.h |
@@ -203,11 +203,13 @@ public: |
bool m_mustReleaseLock; |
}; |
- // In AudioNode::deref() a tryLock() is used for calling finishDeref(), but if it fails keep track here. |
+ // In AudioNode::breakConnection() and deref(), a tryLock() is used for |
+ // calling actual processing, but if it fails keep track here. |
+ void addDeferredBreakConnection(AudioNode&); |
void addDeferredFinishDeref(AudioNode*); |
- // In the audio thread at the start of each render cycle, we'll call handleDeferredFinishDerefs(). |
- void handleDeferredFinishDerefs(); |
+ // In the audio thread at the start of each render cycle, we'll call this. |
+ void handleDeferredAudioNodeTasks(); |
// Only accessed when the graph lock is held. |
void markSummingJunctionDirty(AudioSummingJunction*); |
@@ -306,6 +308,7 @@ private: |
volatile ThreadIdentifier m_graphOwnerThread; // if the lock is held then this is the thread which owns it, otherwise == UndefinedThreadIdentifier |
// Only accessed in the audio thread. |
+ Vector<AudioNode*> m_deferredBreakConnectionList; |
Vector<AudioNode*> m_deferredFinishDerefList; |
RefPtrWillBeMember<AudioBuffer> m_renderTarget; |