ringbuffer: add write lock

Change-Id: Idde24be13daf0fca55ce5a2607e6b9835c18f3c5
This commit is contained in:
Adrien Béraud
2021-10-12 10:39:39 -04:00
parent 0623347c37
commit 3b9983453b
2 changed files with 3 additions and 0 deletions

View File

@ -163,6 +163,7 @@ RingBuffer::hasNoReadOffsets() const
void
RingBuffer::put(std::shared_ptr<AudioFrame>&& data)
{
std::lock_guard<std::mutex> l(writeLock_);
resizer_.enqueue(resampler_.resample(std::move(data), format_));
}

View File

@ -72,6 +72,7 @@ public:
inline void setFormat(const AudioFormat& format)
{
std::lock_guard<std::mutex> l(writeLock_);
format_ = format;
resizer_.setFormat(format, format.sample_rate / 50);
}
@ -201,6 +202,7 @@ private:
mutable std::mutex lock_;
mutable std::condition_variable not_empty_;
std::mutex writeLock_;
ReadOffsetMap readoffsets_;