input/{cdio,ffmpeg,file,smbclient}: unlock the mutex during blocking I/O

InputStream::Read() and InputStream::Seek() are called with the mutex
locked.  That means the implementation must not block, or unlock the
mutex before calling into blocking code.

Previously, a slow CD drive could stall the whole MPD process,
including the main thread, due to this problem.

Closes #149
This commit is contained in:
Max Kellermann
2017-11-13 17:08:00 +01:00
parent f82e1453e4
commit 31ab78ae8e
5 changed files with 35 additions and 5 deletions

2
NEWS
View File

@@ -1,5 +1,7 @@
ver 0.20.12 (not yet released)
* input
- cdio_paranoia, ffmpeg, file, smbclient: reduce lock contention,
fixing lots of xrun problems
- curl: fix seeking
* decoder
- ffmpeg: fix GCC 8 warning