diff options
author | Max Kellermann <max@duempel.org> | 2013-11-06 23:18:55 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-11-06 23:51:17 +0100 |
commit | 9802e74859219ae151cddb238f71016e3a2ef1ef (patch) | |
tree | f1dcd4d13323a4806fd153c3a7a391a994dbede2 | |
parent | 8e7d6eb1518f87926b6d1c34b9ca48e4b5836198 (diff) |
DecoderInternal: lock DecoderControl in _flush_chunk()
Must hold the Mutex to signal the Cond object safely.
-rw-r--r-- | src/DecoderInternal.cxx | 2 | ||||
-rw-r--r-- | src/DecoderInternal.hxx | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/DecoderInternal.cxx b/src/DecoderInternal.cxx index 25d9c3f05..7cca5dbe3 100644 --- a/src/DecoderInternal.cxx +++ b/src/DecoderInternal.cxx @@ -101,5 +101,7 @@ decoder_flush_chunk(Decoder &decoder) decoder.chunk = nullptr; + dc.Lock(); dc.client_cond.signal(); + dc.Unlock(); } diff --git a/src/DecoderInternal.hxx b/src/DecoderInternal.hxx index ffe02ed7f..46069a561 100644 --- a/src/DecoderInternal.hxx +++ b/src/DecoderInternal.hxx @@ -108,6 +108,8 @@ decoder_get_chunk(Decoder &decoder); /** * Flushes the current chunk. + * + * Caller must not lock the #DecoderControl object. */ void decoder_flush_chunk(Decoder &decoder); |