================
@@ -428,14 +453,35 @@ void ProgressEventThreadFunction(DAP &dap) {
           done = true;
         }
       } else {
-        uint64_t progress_id = 0;
-        uint64_t completed = 0;
-        uint64_t total = 0;
-        bool is_debugger_specific = false;
-        const char *message = lldb::SBDebugger::GetProgressFromEvent(
-            event, progress_id, completed, total, is_debugger_specific);
-        if (message)
-          dap.SendProgressEvent(progress_id, message, completed, total);
+        lldb::SBStructuredData data =
+            lldb::SBDebugger::GetProgressDataFromEvent(event);
+
+        const uint64_t progress_id =
+            GetUintFromStructuredData(data, "progress_id");
+        const uint64_t completed = GetUintFromStructuredData(data, 
"completed");
+        const uint64_t total = GetUintFromStructuredData(data, "total");
+        const std::string details =
+            GetStringFromStructuredData(data, "details");
+
+        // If we're only creating and sending on progress event, we send
+        // the title and the detail as a single message.
+        if (completed == 0 && total == 1) {
----------------
clayborg wrote:

restructure as:
```
if (completed == 0) {
  if (total == 1) {
    // This progress is non deterministic and won't get updated until it is 
completed.
    // Send the "message" which will be the combined title and detail. The only 
other
    // progress event for thus non deterministic progress will be the completed 
event
    // So there will be no need to update the detail.
   const std::string message = ...
  } else {
    // This progress is deterministic and will receive updates. On the first 
event...
 }
}
```

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

Reply via email to