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

This commit is contained in:
Max Kellermann 2017-12-22 00:37:25 +01:00
parent e45d13d469
commit d0194a6fb3
3 changed files with 3 additions and 2 deletions

View File

@ -128,8 +128,6 @@ DecoderControl::Stop() noexcept
void
DecoderControl::Seek(SongTime t)
{
const std::lock_guard<Mutex> protect(mutex);
assert(state != DecoderState::START);
assert(state != DecoderState::ERROR);

View File

@ -387,6 +387,8 @@ public:
/**
* Throws #std::runtime_error on error.
*
* Caller must lock the object.
*/
void Seek(SongTime t);

View File

@ -628,6 +628,7 @@ Player::SeekDecoder() noexcept
try {
const PlayerControl::ScopeOccupied occupied(pc);
const std::lock_guard<Mutex> lock(pc.mutex);
dc.Seek(where + start_time);
} catch (...) {
/* decoder failure */