86 #include "../base/condition_variable.h"
87 #include "../base/functional.h"
88 #include "../base/macros.h"
203 void clear() noexcept;
212 void reset_interrupted() noexcept;
215 struct Request final {
217 int64_t generation{0};
227 return left->seq < right->seq;
232 bool is_interrupted_{
false};
233 int64_t request_seq_{0};
234 int64_t generation_{0};
235 mutable std::mutex mtx_;
236 std::set<RequestPtr, Request::Compare> request_set_;
Thread-safe coordinator that pairs RPC requests with their acknowledgements.
Definition: ack_manager.h:103
AckManager() noexcept
Constructs an empty manager.
std::shared_ptr< Request > RequestPtr
Shared handle representing a single in-flight RPC request.
Definition: ack_manager.h:133
Move-only type-erased callable analogue of std::move_only_function with pool spill.
Definition: functional.h:134
#define VUNLIKELY(...)
Short alias for VLINK_UNLIKELY.
Definition: macros.h:289
#define VLINK_EXPORT
Definition: macros.h:81
#define VLINK_DISALLOW_COPY_AND_ASSIGN(classname)
Deletes the copy constructor and copy-assignment operator of classname.
Definition: macros.h:174
std::condition_variable ConditionVariable
Definition: condition_variable.h:605
Definition: ack_manager.h:221
bool operator()(const RequestPtr &left, const RequestPtr &right) const noexcept
Definition: ack_manager.h:222