mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-12 02:45:45 +02:00
Dispatch queue memory optimizations (#1103)
Dispatch queue entry optimizations
This commit is contained in:
parent
2d73b2bfb0
commit
71147c20a9
7 changed files with 206 additions and 247 deletions
|
@ -62,15 +62,15 @@ TestConnection::TestConnection(Protocol protocol, io::StringSink* sink)
|
|||
}
|
||||
|
||||
void TestConnection::SendPubMessageAsync(PubMessage pmsg) {
|
||||
if (pmsg.type == PubMessage::kPublish) {
|
||||
messages.push_back(move(pmsg));
|
||||
} else {
|
||||
if (auto* ptr = std::get_if<PubMessage::MessageData>(&pmsg.data); ptr != nullptr) {
|
||||
messages.push_back(move(*ptr));
|
||||
} else if (auto* ptr = std::get_if<PubMessage::SubscribeData>(&pmsg.data); ptr != nullptr) {
|
||||
RedisReplyBuilder builder(sink_);
|
||||
const char* action[2] = {"unsubscribe", "subscribe"};
|
||||
builder.StartArray(3);
|
||||
builder.SendBulkString(action[pmsg.type == PubMessage::kSubscribe]);
|
||||
builder.SendBulkString(*pmsg.channel);
|
||||
builder.SendLong(pmsg.channel_cnt);
|
||||
builder.SendBulkString(action[ptr->add]);
|
||||
builder.SendBulkString(ptr->channel);
|
||||
builder.SendLong(ptr->channel_cnt);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ class BaseFamilyTest::TestConnWrapper {
|
|||
RespVec ParseResponse(bool fully_consumed);
|
||||
|
||||
// returns: type(pmessage), pattern, channel, message.
|
||||
const facade::Connection::PubMessage& GetPubMessage(size_t index) const;
|
||||
const facade::Connection::PubMessage::MessageData& GetPubMessage(size_t index) const;
|
||||
|
||||
ConnectionContext* cmd_cntx() {
|
||||
return &cmd_cntx_;
|
||||
|
@ -360,7 +360,7 @@ RespVec BaseFamilyTest::TestConnWrapper::ParseResponse(bool fully_consumed) {
|
|||
return res;
|
||||
}
|
||||
|
||||
const facade::Connection::PubMessage& BaseFamilyTest::TestConnWrapper::GetPubMessage(
|
||||
const facade::Connection::PubMessage::MessageData& BaseFamilyTest::TestConnWrapper::GetPubMessage(
|
||||
size_t index) const {
|
||||
CHECK_LT(index, dummy_conn_->messages.size());
|
||||
return dummy_conn_->messages[index];
|
||||
|
@ -391,8 +391,8 @@ size_t BaseFamilyTest::SubscriberMessagesLen(string_view conn_id) const {
|
|||
return it->second->conn()->messages.size();
|
||||
}
|
||||
|
||||
const facade::Connection::PubMessage& BaseFamilyTest::GetPublishedMessage(string_view conn_id,
|
||||
size_t index) const {
|
||||
const facade::Connection::PubMessage::MessageData& BaseFamilyTest::GetPublishedMessage(
|
||||
string_view conn_id, size_t index) const {
|
||||
auto it = connections_.find(conn_id);
|
||||
CHECK(it != connections_.end());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue