21 PriorityQueue(
size_t tp_workers_count,
const std::shared_ptr<PbftManager>& pbft_mgr =
nullptr);
33 void pushBack(std::pair<tarcap::TarcapVersion, PacketData>&& packet);
38 std::optional<std::pair<tarcap::TarcapVersion, PacketData>>
pop();
Definition packet_data.hpp:12
PacketPriority
Definition packet_data.hpp:15
Definition packets_blocking_mask.hpp:16
Definition packets_queue.hpp:12
Definition priority_queue.hpp:19
bool empty() const
Definition priority_queue.cpp:122
void updateDependenciesStart(const PacketData &packet)
Updates blocking dependencies at the start of packet processing.
Definition priority_queue.cpp:126
std::array< PacketsQueue, PacketData::PacketPriority::Count > packets_queues_
Definition priority_queue.hpp:96
PriorityQueue & operator=(const PriorityQueue &)=delete
PacketsBlockingMask blocked_packets_mask_
Definition priority_queue.hpp:101
bool canBorrowThread()
Queue can borrow reserved thread from one of the other priority queues but each queue must have at le...
Definition priority_queue.cpp:41
logger::Logger logger_
Definition priority_queue.hpp:109
const size_t MAX_TOTAL_WORKERS_COUNT
Definition priority_queue.hpp:104
void updateDependenciesFinish(const PacketData &packet, std::mutex &queue_mutex, std::condition_variable &cond_var)
Updates blocking dependencies after packet processing is done.
Definition priority_queue.cpp:134
PriorityQueue(PriorityQueue &&)=delete
std::atomic< size_t > act_total_workers_count_
Definition priority_queue.hpp:107
bool updateBlockingDependencies(const PacketData &packet, bool unblock_processing=false)
Updates packet blocking dependency.
Definition priority_queue.cpp:163
size_t getPrirotityQueueSize(PacketData::PacketPriority priority) const
Returns specified priority queue actual size.
Definition priority_queue.cpp:236
bool isNonBlockingPacket(SubprotocolPacketType packet_type) const
Definition priority_queue.cpp:149
PriorityQueue(const PriorityQueue &)=delete
std::optional< std::pair< tarcap::TarcapVersion, PacketData > > pop()
Definition priority_queue.cpp:56
PriorityQueue & operator=(PriorityQueue &&)=delete
void pushBack(std::pair< tarcap::TarcapVersion, PacketData > &&packet)
Pushes new packet into the priority queue.
Definition priority_queue.cpp:36
std::shared_ptr< spdlog::logger > Logger
Definition logging.hpp:12
Definition node_stats.hpp:18
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12