| Index: Source/modules/webaudio/AudioScheduledSourceNode.cpp
|
| diff --git a/Source/modules/webaudio/AudioScheduledSourceNode.cpp b/Source/modules/webaudio/AudioScheduledSourceNode.cpp
|
| index d853761f1b983b2da6e9abf08075d2c58e9f99da..1e84f43b897081bb28045927340e5c3a28f2bd38 100644
|
| --- a/Source/modules/webaudio/AudioScheduledSourceNode.cpp
|
| +++ b/Source/modules/webaudio/AudioScheduledSourceNode.cpp
|
| @@ -153,6 +153,10 @@ void AudioScheduledSourceHandler::start(double when, ExceptionState& exceptionSt
|
| return;
|
| }
|
|
|
| + // This synchronizes with process(). updateSchedulingInfo will read some of the variables being
|
| + // set here.
|
| + MutexLocker processLocker(m_processLock);
|
| +
|
| // The node is started. Add a reference to keep us alive so that audio will eventually get
|
| // played even if Javascript should drop all references to this node. The reference will get
|
| // dropped when the source has finished playing.
|
| @@ -186,6 +190,9 @@ void AudioScheduledSourceHandler::stop(double when, ExceptionState& exceptionSta
|
| return;
|
| }
|
|
|
| + // This synchronizes with process()
|
| + MutexLocker processLocker(m_processLock);
|
| +
|
| // stop() can be called more than once, with the last call to stop taking effect, unless the
|
| // source has already stopped due to earlier calls to stop. No exceptions are thrown in any
|
| // case.
|
|
|