================
@@ -99,6 +105,10 @@ class Progress {
 private:
   void ReportProgress();
   static std::atomic<uint64_t> g_id;
+  static std::atomic<uint64_t> g_refcount;
+  /// Map that tracks each progress object and if we've seen its start and stop
+  /// events
+  static std::unordered_map<std::string, uint64_t> g_map;
----------------
chelcassanova wrote:

Having the debugger instance keep track of a map of progress reports falls in 
line with what I spoke about with Ismail offline and is the direction I'd vote 
to go in so that the bookkeeping isn't done in the progress objects (I'm sure 
this isn't impossible, but given that LLDB is hierarchical it would make more 
sense that debuggers have progress reports rather than progress reports looking 
after themselves).

So we still want to keep `is_debugger_specific`/ having a debugger pointer in a 
progress object, but do all the bookkeeping in all active debuggers and using 
that debugger pointer to only update the specific reports as needed if I'm 
understanding your approach correctly.

https://github.com/llvm/llvm-project/pull/81026
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to