[Lldb-commits] [lldb] [lldb] Preserve FIFO order for equal time MainLoop callbacks (PR #199056)
Charles Zablit via lldb-commits
lldb-commits at lists.llvm.org
Fri May 29 06:17:11 PDT 2026
================
@@ -99,11 +102,27 @@ class MainLoopBase {
std::optional<TimePoint> GetNextWakeupTime();
std::mutex m_callback_mutex;
- std::priority_queue<std::pair<TimePoint, Callback>,
- std::vector<std::pair<TimePoint, Callback>>,
- llvm::on_first<std::greater<TimePoint>>>
- m_callbacks;
- bool m_terminate_request : 1;
+
+ struct CallbackEntry {
+ TimePoint time_point;
+ Callback callback;
+
+ CallbackEntry(TimePoint tp, Callback cb, uint64_t seq)
+ : time_point(std::move(tp)), callback(std::move(cb)), sequence(seq) {}
+
+ bool operator<(const CallbackEntry &other) const {
+ if (time_point != other.time_point)
+ return time_point > other.time_point;
+ return sequence > other.sequence;
----------------
charles-zablit wrote:
`first non-equal result is returned`. It's equivalent, switched to it. Thanks!
https://github.com/llvm/llvm-project/pull/199056
More information about the lldb-commits
mailing list