[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
Mon Jun 1 03:31:14 PDT 2026


================
@@ -99,11 +102,26 @@ 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 {
+      return std::tie(time_point, sequence) >
----------------
charles-zablit wrote:

We want a min-priority queue here. I added a comment to clarify.

https://github.com/llvm/llvm-project/pull/199056


More information about the lldb-commits mailing list