From 7187b9c32f72deff128f7f60cccb7b37c3efedb2 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 25 Jul 2020 03:11:03 +0300 Subject: [PATCH] Erase the dummy event when new event is pushed to TQueue. GitOrigin-RevId: 42f310f52cf74ddf32655fe3da42c731ff24e799 --- tddb/td/db/TQueue.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tddb/td/db/TQueue.cpp b/tddb/td/db/TQueue.cpp index f15602426..dab0e9145 100644 --- a/tddb/td/db/TQueue.cpp +++ b/tddb/td/db/TQueue.cpp @@ -110,6 +110,17 @@ class TQueueImpl : public TQueue { return false; } + if (!q.events.empty()) { + auto it = q.events.end(); + --it; + if (it->second.data.empty()) { + if (callback_ != nullptr && it->second.logevent_id != 0) { + callback_->pop(it->second.logevent_id); + } + q.events.erase(it); + } + } + if (raw_event.logevent_id == 0 && callback_ != nullptr) { raw_event.logevent_id = callback_->push(queue_id, raw_event); } @@ -279,7 +290,6 @@ class TQueueImpl : public TQueue { void pop(Queue &q, QueueId queue_id, std::map::iterator &it, EventId tail_id) { auto &event = it->second; if (callback_ == nullptr || event.logevent_id == 0) { - event.logevent_id = 0; remove_event(q, it); return; } @@ -292,7 +302,6 @@ class TQueueImpl : public TQueue { ++it; } else { callback_->pop(event.logevent_id); - event.logevent_id = 0; remove_event(q, it); } }