Fix thread races

This commit is contained in:
badaix 2021-09-21 08:16:33 +02:00
parent 2efd00d8ef
commit ee158b521d
4 changed files with 5 additions and 13 deletions

View file

@ -629,6 +629,7 @@ void Server::processRequest(const jsonrpcpp::request_ptr request, const OnRespon
void Server::onMessageReceived(std::shared_ptr<ControlSession> controlSession, const std::string& message, const ResponseHander& response_handler)
{
// LOG(DEBUG, LOG_TAG) << "onMessageReceived: " << message << "\n";
// std::lock_guard<std::recursive_mutex> lock(clientMutex_);
jsonrpcpp::entity_ptr entity(nullptr);
try
{
@ -703,6 +704,7 @@ void Server::onMessageReceived(std::shared_ptr<ControlSession> controlSession, c
void Server::onMessageReceived(StreamSession* streamSession, const msg::BaseMessage& baseMessage, char* buffer)
{
// std::lock_guard<std::recursive_mutex> lock(clientMutex_);
LOG(DEBUG, LOG_TAG) << "onMessageReceived: " << baseMessage.type << ", size: " << baseMessage.size << ", id: " << baseMessage.id
<< ", refers: " << baseMessage.refersTo << ", sent: " << baseMessage.sent.sec << "," << baseMessage.sent.usec
<< ", recv: " << baseMessage.received.sec << "," << baseMessage.received.usec << "\n";

View file

@ -38,14 +38,14 @@ StreamSession::StreamSession(const net::any_io_executor& executor, StreamMessage
void StreamSession::setPcmStream(PcmStreamPtr pcmStream)
{
// std::lock_guard<std::mutex> lock(mutex_);
std::lock_guard<std::mutex> lock(mutex_);
pcmStream_ = pcmStream;
}
const PcmStreamPtr StreamSession::pcmStream() const
{
// std::lock_guard<std::mutex> lock(mutex_);
std::lock_guard<std::mutex> lock(mutex_);
return pcmStream_;
}

View file

@ -295,7 +295,6 @@ json PcmStream::toJson() const
{"status", to_string(state_)},
};
j["metadata"] = metadata_.toJson();
j["properties"] = properties_.toJson();
return j;
@ -308,13 +307,6 @@ void PcmStream::addListener(PcmListener* pcmListener)
}
const Metatags& PcmStream::getMetadata() const
{
std::lock_guard<std::recursive_mutex> lock(mutex_);
return metadata_;
}
const Properties& PcmStream::getProperties() const
{
// std::lock_guard<std::recursive_mutex> lock(mutex_);
@ -448,7 +440,7 @@ void PcmStream::play(ResultHandler handler)
void PcmStream::setProperties(const Properties& properties)
{
// std::lock_guard<std::recursive_mutex> lock(mutex_);
std::lock_guard<std::recursive_mutex> lock(mutex_);
Properties props = properties;
// Missing metadata means the data didn't change, so
// enrich the new properites with old metadata

View file

@ -134,7 +134,6 @@ public:
virtual const SampleFormat& getSampleFormat() const;
virtual std::string getCodec() const;
const Metatags& getMetadata() const;
const Properties& getProperties() const;
// Setter for properties
@ -189,7 +188,6 @@ protected:
std::unique_ptr<encoder::Encoder> encoder_;
std::string name_;
std::atomic<ReaderState> state_;
Metatags metadata_;
Properties properties_;
boost::asio::io_context& ioc_;
ServerSettings server_settings_;