[background_tracing] Allow DoEmitNamedTrigger to be called from any
sequence Bug: 394973090 Change-Id: I956c934e675750ee808a8eb3238711a8afa6b484 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6244400 Commit-Queue: Thiabaud Engelbrecht <thiabaud@google.com> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#1417579}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
c61ff61437
commit
11921c84b5
services/tracing/public/cpp/background_tracing
@ -17,7 +17,8 @@ namespace tracing {
|
||||
|
||||
BackgroundTracingAgentImpl::BackgroundTracingAgentImpl(
|
||||
mojo::PendingRemote<mojom::BackgroundTracingAgentClient> client)
|
||||
: client_(std::move(client)) {
|
||||
: client_(std::move(client)),
|
||||
task_runner_{base::SequencedTaskRunner::GetCurrentDefault()} {
|
||||
client_->OnInitialized();
|
||||
NamedTriggerManager::SetInstance(this);
|
||||
}
|
||||
@ -53,9 +54,22 @@ bool BackgroundTracingAgentImpl::DoEmitNamedTrigger(
|
||||
std::optional<int32_t> value) {
|
||||
TRACE_EVENT_INSTANT("latency", "NamedTrigger",
|
||||
base::trace_event::TriggerFlow(trigger_name, value));
|
||||
DoEmitNamedTriggerImpl(trigger_name, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
void BackgroundTracingAgentImpl::DoEmitNamedTriggerImpl(
|
||||
const std::string& trigger_name,
|
||||
std::optional<int32_t> value) {
|
||||
if (!task_runner_->RunsTasksInCurrentSequence()) {
|
||||
task_runner_->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&BackgroundTracingAgentImpl::DoEmitNamedTriggerImpl,
|
||||
weak_factory_.GetWeakPtr(), trigger_name, value));
|
||||
return;
|
||||
}
|
||||
client_->OnTriggerBackgroundTrace(
|
||||
tracing::mojom::BackgroundTracingRule::New(trigger_name), value);
|
||||
return true;
|
||||
}
|
||||
|
||||
void BackgroundTracingAgentImpl::OnHistogramChanged(
|
||||
|
@ -52,6 +52,9 @@ class COMPONENT_EXPORT(BACKGROUND_TRACING_CPP) BackgroundTracingAgentImpl
|
||||
uint64_t name_hash,
|
||||
base::Histogram::Sample32 actual_value);
|
||||
|
||||
void DoEmitNamedTriggerImpl(const std::string& trigger_name,
|
||||
std::optional<int32_t> value);
|
||||
|
||||
mojo::Remote<mojom::BackgroundTracingAgentClient> client_;
|
||||
base::Time histogram_last_changed_;
|
||||
// Tracks histogram names and corresponding registered callbacks.
|
||||
@ -60,6 +63,7 @@ class COMPONENT_EXPORT(BACKGROUND_TRACING_CPP) BackgroundTracingAgentImpl
|
||||
std::unique_ptr<base::StatisticsRecorder::ScopedHistogramSampleObserver>>
|
||||
histogram_callback_map_;
|
||||
|
||||
scoped_refptr<base::SequencedTaskRunner> task_runner_;
|
||||
base::WeakPtrFactory<BackgroundTracingAgentImpl> weak_factory_{this};
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user