Index: base/profiler/stack_sampling_profiler.h |
diff --git a/base/profiler/stack_sampling_profiler.h b/base/profiler/stack_sampling_profiler.h |
index a5e30e9fa0e892c0c588be2ea1ce1f144d2c741c..c2c89dd0dab611a26cd8ea24711437bd46dbca97 100644 |
--- a/base/profiler/stack_sampling_profiler.h |
+++ b/base/profiler/stack_sampling_profiler.h |
@@ -16,6 +16,7 @@ |
#include "base/callback.h" |
#include "base/files/file_path.h" |
#include "base/macros.h" |
+#include "base/optional.h" |
#include "base/strings/string16.h" |
#include "base/synchronization/waitable_event.h" |
#include "base/threading/platform_thread.h" |
@@ -215,13 +216,18 @@ class BASE_EXPORT StackSamplingProfiler { |
// are move-only. Other threads, including the UI thread, may block on |
// callback completion so this should run as quickly as possible. |
// |
+ // After collection completion, the callback may instruct the profiler to do |
+ // additional collection(s) by returning a SamplingParams object to indicate |
+ // collection should be started again. |
+ // |
// IMPORTANT NOTE: The callback is invoked on a thread the profiler |
// constructs, rather than on the thread used to construct the profiler and |
// set the callback, and thus the callback must be callable on any thread. For |
// threads with message loops that create StackSamplingProfilers, posting a |
// task to the message loop with the moved (i.e. std::move) profiles is the |
// thread-safe callback implementation. |
- using CompletedCallback = Callback<void(CallStackProfiles)>; |
+ using CompletedCallback = |
+ Callback<Optional<SamplingParams>(CallStackProfiles)>; |
// Creates a profiler for the CURRENT thread that sends completed profiles |
// to |callback|. An optional |test_delegate| can be supplied by tests. |
@@ -299,9 +305,9 @@ class BASE_EXPORT StackSamplingProfiler { |
// and later passed to the sampling thread when profiling is started. |
std::unique_ptr<NativeStackSampler> native_sampler_; |
- // An ID uniquely identifying this collection to the sampling thread. This |
+ // An ID uniquely identifying this profiler to the sampling thread. This |
// will be an internal "null" value when no collection has been started. |
- int collection_id_; |
+ int profiler_id_; |
// Stored until it can be passed to the NativeStackSampler created in Start(). |
NativeStackSamplerTestDelegate* const test_delegate_; |