decoder/Thread: clear the command after catching an exception
If an early exception gets caught (e.g. from AllocatedPath::FromUTF8Throw()) before DecoderControl::CommandFinishedLocked() is called, the decoder thread would go in an endless loop, because DecoderCommand::START is still set. Closes #118
This commit is contained in:
parent
ea80587ddb
commit
fa67c2548a
1
NEWS
1
NEWS
|
@ -5,6 +5,7 @@ ver 0.20.11 (not yet released)
|
|||
- ffmpeg: more reliable song duration
|
||||
- gme: fix track numbering
|
||||
* fix case insensitive search without libicu
|
||||
* fix endless loop when accessing malformed file names in ZIP files
|
||||
|
||||
ver 0.20.10 (2017/08/24)
|
||||
* decoder
|
||||
|
|
|
@ -508,6 +508,7 @@ try {
|
|||
decoder_run_song(dc, song, uri_utf8, path_fs);
|
||||
} catch (...) {
|
||||
dc.state = DecoderState::ERROR;
|
||||
dc.command = DecoderCommand::NONE;
|
||||
dc.error = std::current_exception();
|
||||
dc.client_cond.signal();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue