diff options
author | Matthew Hoops | 2014-07-10 00:27:33 -0400 |
---|---|---|
committer | Matthew Hoops | 2014-07-27 23:44:44 -0400 |
commit | d2353964b8712bb3604ba7af678ca6cc95278fbf (patch) | |
tree | f7127cf6fb1e80891e56df53232d408b4fd997c9 | |
parent | 1b834f92bd75d394051de650747096ee9d82b513 (diff) | |
download | scummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.tar.gz scummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.tar.bz2 scummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.zip |
AUDIO: Fix QueuingAudioStreamImpl locking
-rw-r--r-- | audio/audiostream.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/audio/audiostream.cpp b/audio/audiostream.cpp index 4dd5d236be..bfb1dda2ad 100644 --- a/audio/audiostream.cpp +++ b/audio/audiostream.cpp @@ -315,18 +315,27 @@ public: virtual int readBuffer(int16 *buffer, const int numSamples); virtual bool isStereo() const { return _stereo; } virtual int getRate() const { return _rate; } + virtual bool endOfData() const { - //Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex); return _queue.empty(); } - virtual bool endOfStream() const { return _finished && _queue.empty(); } + + virtual bool endOfStream() const { + Common::StackLock lock(_mutex); + return _finished && _queue.empty(); + } // Implement the QueuingAudioStream API virtual void queueAudioStream(AudioStream *stream, DisposeAfterUse::Flag disposeAfterUse); - virtual void finish() { _finished = true; } + + virtual void finish() { + Common::StackLock lock(_mutex); + _finished = true; + } uint32 numQueuedStreams() const { - //Common::StackLock lock(_mutex); + Common::StackLock lock(_mutex); return _queue.size(); } }; |