decoder/Control: caller must lock mutex for Stop()

This commit is contained in:
Max Kellermann 2017-12-22 00:44:54 +01:00
parent 76d77af0f0
commit 860d13c7d8
3 changed files with 4 additions and 2 deletions

View File

@ -112,8 +112,6 @@ DecoderControl::Start(std::unique_ptr<DetachedSong> _song,
void
DecoderControl::Stop() noexcept
{
const std::lock_guard<Mutex> protect(mutex);
if (command != DecoderCommand::NONE)
/* Attempt to cancel the current command. If it's too
late and the decoder thread is already executing

View File

@ -383,6 +383,9 @@ public:
SongTime start_time, SongTime end_time,
MusicBuffer &buffer, MusicPipe &pipe) noexcept;
/**
* Caller must lock the object.
*/
void Stop() noexcept;
/**

View File

@ -373,6 +373,7 @@ void
Player::StopDecoder() noexcept
{
const PlayerControl::ScopeOccupied occupied(pc);
const std::lock_guard<Mutex> protect(pc.mutex);
dc.Stop();