TQueue: bugfixes
GitOrigin-RevId: fd9d8e31594c51c89b7732db3fea6a27557a9553
This commit is contained in:
parent
5685591ff4
commit
db97a337fc
|
@ -151,6 +151,7 @@ class TQueueImpl : public TQueue {
|
||||||
Result<size_t> get(QueueId queue_id, EventId from_id, double now, MutableSpan<Event> &events) override {
|
Result<size_t> get(QueueId queue_id, EventId from_id, double now, MutableSpan<Event> &events) override {
|
||||||
auto it = queues_.find(queue_id);
|
auto it = queues_.find(queue_id);
|
||||||
if (it == queues_.end()) {
|
if (it == queues_.end()) {
|
||||||
|
events.truncate(0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
auto &q = it->second;
|
auto &q = it->second;
|
||||||
|
@ -163,13 +164,15 @@ class TQueueImpl : public TQueue {
|
||||||
}
|
}
|
||||||
confirm_read(q, from_id, now);
|
confirm_read(q, from_id, now);
|
||||||
if (q.events.empty()) {
|
if (q.events.empty()) {
|
||||||
|
events.truncate(0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto from_events = q.events.as_span();
|
auto from_events = q.events.as_span();
|
||||||
size_t ready_n = 0;
|
size_t ready_n = 0;
|
||||||
size_t left_n = 0;
|
size_t left_n = from_events.size();
|
||||||
for (size_t i = 0; i < from_events.size(); i++) {
|
for (size_t i = 0; i < from_events.size() && ready_n < events.size(); i++) {
|
||||||
|
left_n--;
|
||||||
auto &from = from_events[i];
|
auto &from = from_events[i];
|
||||||
if (from.expire_at < now) {
|
if (from.expire_at < now) {
|
||||||
//TODO: pop this element
|
//TODO: pop this element
|
||||||
|
|
Loading…
Reference in New Issue
Block a user