diff options
| author | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:56:36 +0900 |
|---|---|---|
| committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:56:36 +0900 |
| commit | b0cb9219fc3deea4a7bc7cfd8502627f40b50957 (patch) | |
| tree | 84c5f170501c53288f117cf3192fc7ae2a919321 /lldb/source/Core/Progress.cpp | |
| parent | 7f16c19a2f3af731ca6c2c47c502d8e9806da2a9 (diff) | |
| parent | 73176fb8a6c44fc68898f014dd7336515c7fe5f2 (diff) | |
Merge branch 'users/chapuni/cov/single/binop-base' into users/chapuni/cov/single/binopusers/chapuni/cov/single/binop
Diffstat (limited to 'lldb/source/Core/Progress.cpp')
| -rw-r--r-- | lldb/source/Core/Progress.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lldb/source/Core/Progress.cpp b/lldb/source/Core/Progress.cpp index ed8dfb85639b..63f980432080 100644 --- a/lldb/source/Core/Progress.cpp +++ b/lldb/source/Core/Progress.cpp @@ -28,12 +28,14 @@ static llvm::ManagedStatic<llvm::SignpostEmitter> g_progress_signposts; Progress::Progress(std::string title, std::string details, std::optional<uint64_t> total, lldb_private::Debugger *debugger, - Timeout<std::nano> minimum_report_time) + Timeout<std::nano> minimum_report_time, + Progress::Origin origin) : m_total(total.value_or(Progress::kNonDeterministicTotal)), m_minimum_report_time(minimum_report_time), m_progress_data{title, ++g_id, debugger ? std::optional<user_id_t>(debugger->GetID()) - : std::nullopt}, + : std::nullopt, + origin}, m_last_report_time_ns( std::chrono::nanoseconds( std::chrono::steady_clock::now().time_since_epoch()) @@ -106,9 +108,15 @@ void Progress::ReportProgress() { if (completed < m_prev_completed) return; // An overflow in the m_completed counter. Just ignore these events. + // Change the category bit if we're an internal or external progress. + uint32_t progress_category_bit = + m_progress_data.origin == Progress::Origin::eExternal + ? lldb::eBroadcastBitExternalProgress + : lldb::eBroadcastBitProgress; + Debugger::ReportProgress(m_progress_data.progress_id, m_progress_data.title, m_details, completed, m_total, - m_progress_data.debugger_id); + m_progress_data.debugger_id, progress_category_bit); m_prev_completed = completed; } @@ -201,10 +209,13 @@ void ProgressManager::ReportProgress( // broadcasting to it since that bit doesn't need that information. const uint64_t completed = (type == EventType::Begin) ? 0 : Progress::kNonDeterministicTotal; + const uint32_t progress_category_bit = + progress_data.origin == Progress::Origin::eExternal + ? lldb::eBroadcastBitExternalProgressCategory + : lldb::eBroadcastBitProgressCategory; Debugger::ReportProgress(progress_data.progress_id, progress_data.title, "", completed, Progress::kNonDeterministicTotal, - progress_data.debugger_id, - lldb::eBroadcastBitProgressCategory); + progress_data.debugger_id, progress_category_bit); } void ProgressManager::Expire(llvm::StringRef key) { |
