From 14d75cc654b2ffac1b13ac5b3e6754acc981d52a Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 4 Apr 2022 17:50:20 -0400 Subject: [PATCH] add util::ascending_priority_queue type --- llarp/service/endpoint.cpp | 3 ++- llarp/service/protocol.hpp | 4 ++-- llarp/util/priority_queue.hpp | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 llarp/util/priority_queue.hpp diff --git a/llarp/service/endpoint.cpp b/llarp/service/endpoint.cpp index 324f23eb8..18e7876df 100644 --- a/llarp/service/endpoint.cpp +++ b/llarp/service/endpoint.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -1629,7 +1630,7 @@ namespace llarp session->FlushDownstream(); // handle inbound traffic sorted - std::priority_queue queue; + util::ascending_priority_queue queue; while (not m_InboundTrafficQueue.empty()) { // succ it out diff --git a/llarp/service/protocol.hpp b/llarp/service/protocol.hpp index f2485c3af..1776abba4 100644 --- a/llarp/service/protocol.hpp +++ b/llarp/service/protocol.hpp @@ -64,9 +64,9 @@ namespace llarp ProcessAsync(path::Path_ptr p, PathID_t from, std::shared_ptr self); bool - operator<(const ProtocolMessage& other) const + operator>(const ProtocolMessage& other) const { - return other.seqno < seqno; + return seqno > other.seqno; } }; diff --git a/llarp/util/priority_queue.hpp b/llarp/util/priority_queue.hpp new file mode 100644 index 000000000..19ef98f55 --- /dev/null +++ b/llarp/util/priority_queue.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include +#include + +namespace llarp::util +{ + /// priority queue that uses operator > instead of operator < + template > + using ascending_priority_queue = + std::priority_queue>; + +} // namespace llarp::util