Commit 8ddd0d30 authored by knowledge4igor's avatar knowledge4igor

Code improvements: lambdas and tiny changes

parent 86df28c3
......@@ -38,13 +38,7 @@ struct Connection : public std::enable_shared_from_this<Connection> {
using OnDone = std::function<void()>;
Connection()
: fd(-1)
, requestEntry(nullptr)
{
state_.store(static_cast<uint32_t>(State::Idle));
connectionState_.store(NotConnected);
}
Connection();
struct RequestData {
......@@ -180,7 +174,6 @@ public:
: requestsQueue()
, connectionsQueue()
, connections()
, requests()
, timeouts()
{ }
......@@ -188,7 +181,6 @@ public:
: requestsQueue()
, connectionsQueue()
, connections()
, requests()
, timeouts()
{ }
......@@ -254,7 +246,6 @@ private:
PollableQueue<ConnectionEntry> connectionsQueue;
std::unordered_map<Fd, ConnectionEntry> connections;
std::unordered_map<Fd, RequestEntry> requests;
std::unordered_map<Fd, std::shared_ptr<Connection>> timeouts;
void asyncSendRequestImpl(const RequestEntry& req, WriteStatus status = FirstTry);
......
......@@ -348,6 +348,14 @@ Transport::handleTimeout(const std::shared_ptr<Connection>& connection) {
connection->handleTimeout();
}
Connection::Connection()
: fd(-1)
, requestEntry(nullptr)
{
state_.store(static_cast<uint32_t>(State::Idle));
connectionState_.store(NotConnected);
}
void
Connection::connect(const Address& addr)
{
......@@ -799,7 +807,8 @@ Client::doRequest(
auto conn = pool.pickConnection(s.first);
if (conn == nullptr) {
return Async::Promise<Response>([=](Async::Resolver& resolve, Async::Rejection& reject) {
// TODO: C++14 - use capture move for s
return Async::Promise<Response>([this, s, request, timeout](Async::Resolver& resolve, Async::Rejection& reject) {
Guard guard(queuesLock);
auto data = std::make_shared<Connection::RequestData>(std::move(resolve), std::move(reject), request, timeout, nullptr);
......@@ -820,7 +829,7 @@ Client::doRequest(
}
if (!conn->isConnected()) {
auto res = conn->asyncPerform(request, timeout, [=]() {
auto res = conn->asyncPerform(request, timeout, [this, conn]() {
pool.releaseConnection(conn);
processRequestQueue();
});
......@@ -828,7 +837,7 @@ Client::doRequest(
return res;
}
return conn->perform(request, timeout, [=]() {
return conn->perform(request, timeout, [this, conn]() {
pool.releaseConnection(conn);
processRequestQueue();
});
......@@ -860,7 +869,7 @@ Client::processRequestQueue() {
data->request,
data->timeout,
std::move(data->resolve), std::move(data->reject),
[=]() {
[this, conn]() {
pool.releaseConnection(conn);
processRequestQueue();
});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment