Skip to content

Commit

Permalink
Optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
resetius committed Nov 28, 2023
1 parent bd21b32 commit 30b4e48
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/raft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ void TRaft::ApplyResult(ITimeSource::Time now, std::unique_ptr<TResult> result,
auto messageEx = result->Message.Cast<TMessageEx>();
if (messageEx->Dst == 0) {
for (auto& [id, v] : Nodes) {
v->Send(messageEx);
v->Send(std::move(messageEx));
}
} else {
Nodes[messageEx->Dst]->Send(std::move(messageEx));
Expand All @@ -452,7 +452,7 @@ void TRaft::ProcessWaiting() {
auto commitIndex = VolatileState->CommitIndex;
while (!waiting.empty() && waiting.top().Index <= commitIndex) {
auto w = waiting.top(); waiting.pop();
w.ReplyTo->Send(w.Message);
w.ReplyTo->Send(std::move(w.Message));
}
}

2 changes: 1 addition & 1 deletion src/raft.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

struct INode {
virtual ~INode() = default;
virtual void Send(const TMessageHolder<TMessage>& message) = 0;
virtual void Send(TMessageHolder<TMessage> message) = 0;
virtual void Drain() = 0;
};

Expand Down
4 changes: 2 additions & 2 deletions src/server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ TPromise<TMessageHolder<TMessage>>::TTask TReader::Read() {
co_return mes;
}

void TNode::Send(const TMessageHolder<TMessage>& message) {
Messages.emplace_back(message);
void TNode::Send(TMessageHolder<TMessage> message) {
Messages.emplace_back(std::move(message));
}

void TNode::Drain() {
Expand Down
2 changes: 1 addition & 1 deletion src/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ class TNode: public INode {
, TimeSource(ts)
{ }

void Send(const TMessageHolder<TMessage>& message) override;
void Send(TMessageHolder<TMessage> message) override;
void Drain() override;
NNet::TSocket& Sock() {
return Socket;
Expand Down
18 changes: 9 additions & 9 deletions test/test_raft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ using namespace NNet;

namespace {

using OnSendFunc = const std::function<void(const TMessageHolder<TMessage>&)>;
using OnSendFunc = const std::function<void(TMessageHolder<TMessage>)>;

class TFakeNode: public INode {
public:
TFakeNode(const OnSendFunc& sendFunc = {})
: SendFunc(sendFunc)
{ }

void Send(const TMessageHolder<TMessage>& message) override {
void Send(TMessageHolder<TMessage> message) override {
if (SendFunc) {
SendFunc(message);
SendFunc(std::move(message));
}
}

Expand Down Expand Up @@ -395,8 +395,8 @@ void test_follower_append_entries_7f(void**) {

void test_follower_append_entries_empty_to_empty_log(void**) {
std::vector<TMessageHolder<TMessage>> messages;
auto onSend = [&](const TMessageHolder<TMessage>& message) {
messages.push_back(message);
auto onSend = [&](auto message) {
messages.emplace_back(std::move(message));
};
auto ts = std::make_shared<TFakeTimeSource>();
auto raft = MakeRaft(onSend, 3, ts);
Expand All @@ -419,8 +419,8 @@ void test_follower_append_entries_empty_to_empty_log(void**) {

void test_candidate_initiate_election(void**) {
std::vector<TMessageHolder<TMessage>> messages;
auto onSend = [&](const TMessageHolder<TMessage>& message) {
messages.push_back(message);
auto onSend = [&](auto message) {
messages.emplace_back(std::move(message));
};
auto ts = std::make_shared<TFakeTimeSource>();
auto raft = MakeRaft(onSend, 3, ts);
Expand Down Expand Up @@ -504,8 +504,8 @@ void test_candidate_vote_request_big(void**) {

void test_candidate_vote_after_start(void**) {
std::vector<TMessageHolder<TMessage>> messages;
auto onSend = [&](const TMessageHolder<TMessage>& message) {
messages.push_back(message);
auto onSend = [&](auto message) {
messages.emplace_back(std::move(message));
};
auto ts = std::make_shared<TFakeTimeSource>();
auto raft = MakeRaft(onSend, 3, ts);
Expand Down

0 comments on commit 30b4e48

Please sign in to comment.