io_context cleanups

This commit is contained in:
badaix 2022-04-03 15:27:28 +02:00
parent 945e19a4eb
commit bdc6299523
11 changed files with 18 additions and 26 deletions

View file

@ -93,7 +93,7 @@ bool PendingRequest::operator<(const PendingRequest& other) const
ClientConnection::ClientConnection(boost::asio::io_context& io_context, const ClientSettings::Server& server)
: io_context_(io_context), strand_(boost::asio::make_strand(io_context_.get_executor())), resolver_(strand_), socket_(strand_), reqId_(1), server_(server)
: strand_(boost::asio::make_strand(io_context.get_executor())), resolver_(strand_), socket_(strand_), reqId_(1), server_(server)
{
base_msg_size_ = base_message_.getSize();
buffer_.resize(base_msg_size_);

View file

@ -140,7 +140,6 @@ protected:
std::vector<char> buffer_;
size_t base_msg_size_;
boost::asio::io_context& io_context_;
boost::asio::strand<boost::asio::any_io_executor> strand_;
tcp::resolver resolver_;
tcp::socket socket_;

View file

@ -55,7 +55,7 @@ ControlServer::~ControlServer()
void ControlServer::cleanup()
{
auto new_end = std::remove_if(sessions_.begin(), sessions_.end(), [](std::weak_ptr<ControlSession> session) { return session.expired(); });
auto new_end = std::remove_if(sessions_.begin(), sessions_.end(), [](const std::weak_ptr<ControlSession>& session) { return session.expired(); });
auto count = distance(new_end, sessions_.end());
if (count > 0)
{

View file

@ -41,7 +41,7 @@ struct mDNSService
class PublishmDNS
{
public:
PublishmDNS(const std::string& serviceName, boost::asio::io_context& ioc) : serviceName_(serviceName), ioc_(ioc)
PublishmDNS(const std::string& serviceName, boost::asio::io_context& ioc) : serviceName_(serviceName), io_context_(ioc)
{
}
@ -51,7 +51,7 @@ public:
protected:
std::string serviceName_;
boost::asio::io_context& ioc_;
boost::asio::io_context& io_context_;
};
#if defined(HAS_AVAHI)

View file

@ -1,6 +1,6 @@
/***
This file is part of snapcast
Copyright (C) 2014-2021 Johannes Pohl
Copyright (C) 2014-2022 Johannes Pohl
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -159,7 +159,6 @@ void Server::processRequest(const jsonrpcpp::request_ptr request, const OnRespon
// Notification: {"jsonrpc":"2.0","method":"Client.OnVolumeChanged","params":{"id":"00:21:6a:7d:74:fc","volume":{"muted":false,"percent":74}}}
// clang-format on
// std::lock_guard<std::recursive_mutex> lock(clientMutex_);
clientInfo->config.volume.fromJson(request->params().get("volume"));
result["volume"] = clientInfo->config.volume.toJson();
notification = std::make_shared<jsonrpcpp::Notification>(
@ -636,7 +635,6 @@ 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_);
std::lock_guard<std::mutex> lock(Config::instance().getMutex());
jsonrpcpp::entity_ptr entity(nullptr);
try
@ -712,7 +710,6 @@ 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

@ -93,8 +93,6 @@ private:
/// @param deferred the delay after the last call to saveConfig
void saveConfig(const std::chrono::milliseconds& deferred = std::chrono::seconds(2));
// mutable std::recursive_mutex controlMutex_;
// mutable std::recursive_mutex clientMutex_;
boost::asio::io_context& io_context_;
boost::asio::steady_timer config_timer_;

View file

@ -86,7 +86,6 @@ private:
void onDisconnect(StreamSession* streamSession) override;
mutable std::recursive_mutex sessionsMutex_;
// mutable std::recursive_mutex clientMutex_;
std::vector<std::weak_ptr<StreamSession>> sessions_;
boost::asio::io_context& io_context_;
std::vector<acceptor_ptr> acceptor_;

View file

@ -46,7 +46,7 @@ static constexpr auto LOG_TAG = "PcmStream";
PcmStream::PcmStream(PcmStream::Listener* pcmListener, boost::asio::io_context& ioc, const ServerSettings& server_settings, const StreamUri& uri)
: active_(false), strand_(boost::asio::make_strand(ioc.get_executor())), pcmListeners_{pcmListener}, uri_(uri), chunk_ms_(20), state_(ReaderState::kIdle),
ioc_(ioc), server_settings_(server_settings), req_id_(0), property_timer_(strand_)
server_settings_(server_settings), req_id_(0), property_timer_(strand_)
{
encoder::EncoderFactory encoderFactory;
if (uri_.query.find(kUriCodec) == uri_.query.end())

View file

@ -189,7 +189,6 @@ protected:
std::string name_;
std::atomic<ReaderState> state_;
Properties properties_;
boost::asio::io_context& ioc_;
ServerSettings server_settings_;
std::unique_ptr<StreamControl> stream_ctrl_;
std::atomic<int> req_id_;

View file

@ -1,6 +1,6 @@
/***
This file is part of snapcast
Copyright (C) 2014-2021 Johannes Pohl
Copyright (C) 2014-2022 Johannes Pohl
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -47,7 +47,7 @@ namespace streamreader
StreamManager::StreamManager(PcmStream::Listener* pcmListener, boost::asio::io_context& ioc, const ServerSettings& settings)
// const std::string& defaultSampleFormat, const std::string& defaultCodec, size_t defaultChunkBufferMs)
: pcmListener_(pcmListener), settings_(settings), ioc_(ioc)
: pcmListener_(pcmListener), settings_(settings), io_context_(ioc)
{
}
@ -79,20 +79,20 @@ PcmStreamPtr StreamManager::addStream(StreamUri& streamUri)
if (streamUri.scheme == "pipe")
{
stream = make_shared<PipeStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<PipeStream>(pcmListener_, io_context_, settings_, streamUri);
}
else if (streamUri.scheme == "file")
{
stream = make_shared<FileStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<FileStream>(pcmListener_, io_context_, settings_, streamUri);
}
else if (streamUri.scheme == "process")
{
stream = make_shared<ProcessStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<ProcessStream>(pcmListener_, io_context_, settings_, streamUri);
}
#ifdef HAS_ALSA
else if (streamUri.scheme == "alsa")
{
stream = make_shared<AlsaStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<AlsaStream>(pcmListener_, io_context_, settings_, streamUri);
}
#endif
else if ((streamUri.scheme == "spotify") || (streamUri.scheme == "librespot"))
@ -101,7 +101,7 @@ PcmStreamPtr StreamManager::addStream(StreamUri& streamUri)
// that all constructors of all parent classes also use the overwritten sample
// format.
streamUri.query[kUriSampleFormat] = "44100:16:2";
stream = make_shared<LibrespotStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<LibrespotStream>(pcmListener_, io_context_, settings_, streamUri);
}
else if (streamUri.scheme == "airplay")
{
@ -109,15 +109,15 @@ PcmStreamPtr StreamManager::addStream(StreamUri& streamUri)
// that all constructors of all parent classes also use the overwritten sample
// format.
streamUri.query[kUriSampleFormat] = "44100:16:2";
stream = make_shared<AirplayStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<AirplayStream>(pcmListener_, io_context_, settings_, streamUri);
}
else if (streamUri.scheme == "tcp")
{
stream = make_shared<TcpStream>(pcmListener_, ioc_, settings_, streamUri);
stream = make_shared<TcpStream>(pcmListener_, io_context_, settings_, streamUri);
}
else if (streamUri.scheme == "meta")
{
stream = make_shared<MetaStream>(pcmListener_, streams_, ioc_, settings_, streamUri);
stream = make_shared<MetaStream>(pcmListener_, streams_, io_context_, settings_, streamUri);
}
else
{

View file

@ -1,6 +1,6 @@
/***
This file is part of snapcast
Copyright (C) 2014-2021 Johannes Pohl
Copyright (C) 2014-2022 Johannes Pohl
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -55,7 +55,7 @@ private:
std::vector<PcmStreamPtr> streams_;
PcmStream::Listener* pcmListener_;
ServerSettings settings_;
boost::asio::io_context& ioc_;
boost::asio::io_context& io_context_;
};
} // namespace streamreader