[Lldb-commits] [lldb] [lldb][progress] Add progress manager class (PR #81319)

Chelsea Cassanova via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 15 11:57:46 PST 2024


================
@@ -119,6 +120,32 @@ class Progress {
   bool m_complete = false;
 };
 
+/// A class used to group progress reports by category. This is done by using a
+/// map that maintains a refcount of each category of progress reports that have
+/// come in. Keeping track of progress reports this way will be done if a
+/// debugger is listening to the eBroadcastBitProgressByCategory broadcast bit.
+class ProgressManager {
+public:
+  ProgressManager();
+  ~ProgressManager();
+
+  static void Initialize();
+  static void Terminate();
+  // Control the refcount of the progress report category as needed
+  void Increment(std::string category);
+  void Decrement(std::string category);
+
+  // Public accessor for the class instance
+  static ProgressManager &Instance();
+
+private:
+  // Manage the class instance internally using a std::optional
----------------
chelcassanova wrote:

I should've changed this comment in a more recent push that removes the reference to the `std::optional`.

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


More information about the lldb-commits mailing list