bool OfflineAudioContext::handlePreOfflineRenderTasks() { ASSERT(isAudioThread()); // OfflineGraphAutoLocker here locks the audio graph for this scope. Note // that this locker does not use tryLock() inside because the timing of // suspension MUST NOT be delayed. OfflineGraphAutoLocker locker(this); deferredTaskHandler().handleDeferredTasks(); handleStoppableSourceNodes(); return shouldSuspend(); }
void AbstractAudioContext::handlePreRenderTasks() { ASSERT(isAudioThread()); // At the beginning of every render quantum, try to update the internal rendering graph state (from main thread changes). // It's OK if the tryLock() fails, we'll just take slightly longer to pick up the changes. if (tryLock()) { deferredTaskHandler().handleDeferredTasks(); resolvePromisesForResume(); // Check to see if source nodes can be stopped because the end time has passed. handleStoppableSourceNodes(); unlock(); } }