Use recursive mutex

This commit is contained in:
badaix 2021-06-29 08:44:54 +02:00
parent cee6b2cfee
commit 41833d63fa
2 changed files with 5 additions and 5 deletions

View file

@ -314,14 +314,14 @@ void PcmStream::addListener(PcmListener* pcmListener)
const Metatags& PcmStream::getMetadata() const const Metatags& PcmStream::getMetadata() const
{ {
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::recursive_mutex> lock(mutex_);
return metadata_; return metadata_;
} }
const Properties& PcmStream::getProperties() const const Properties& PcmStream::getProperties() const
{ {
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::recursive_mutex> lock(mutex_);
return properties_; return properties_;
} }
@ -451,7 +451,7 @@ void PcmStream::control(const jsonrpcpp::Request& request, const StreamControl::
void PcmStream::setMetadata(const Metatags& metadata) void PcmStream::setMetadata(const Metatags& metadata)
{ {
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::recursive_mutex> lock(mutex_);
if (metadata == metadata_) if (metadata == metadata_)
{ {
LOG(DEBUG, LOG_TAG) << "setMetadata: Metadata did not change\n"; LOG(DEBUG, LOG_TAG) << "setMetadata: Metadata did not change\n";
@ -472,7 +472,7 @@ void PcmStream::setMetadata(const Metatags& metadata)
void PcmStream::setProperties(const Properties& properties) void PcmStream::setProperties(const Properties& properties)
{ {
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::recursive_mutex> lock(mutex_);
if (properties == properties_) if (properties == properties_)
{ {
LOG(DEBUG, LOG_TAG) << "setProperties: Properties did not change\n"; LOG(DEBUG, LOG_TAG) << "setProperties: Properties did not change\n";

View file

@ -174,7 +174,7 @@ protected:
std::unique_ptr<StreamControl> stream_ctrl_; std::unique_ptr<StreamControl> stream_ctrl_;
std::atomic<int> req_id_; std::atomic<int> req_id_;
boost::asio::steady_timer property_timer_; boost::asio::steady_timer property_timer_;
mutable std::mutex mutex_; mutable std::recursive_mutex mutex_;
}; };
} // namespace streamreader } // namespace streamreader