1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/profiler/scoped_tracker.h"
9 namespace tracked_objects
{
13 ScopedProfile::Mode g_scoped_profile_mode
= ScopedProfile::DISABLED
;
15 // Executes |callback|, augmenting it with provided |location|.
16 void ExecuteAndTrackCallback(const Location
& location
,
17 const base::Closure
& callback
) {
18 ScopedProfile
tracking_profile(location
, ScopedProfile::ENABLED
);
25 void ScopedTracker::Enable() {
26 g_scoped_profile_mode
= ScopedProfile::ENABLED
;
30 base::Closure
ScopedTracker::TrackCallback(const Location
& location
,
31 const base::Closure
& callback
) {
32 if (g_scoped_profile_mode
!= ScopedProfile::ENABLED
)
35 return base::Bind(ExecuteAndTrackCallback
, location
, callback
);
38 ScopedTracker::ScopedTracker(const Location
& location
)
39 : scoped_profile_(location
, g_scoped_profile_mode
) {
42 } // namespace tracked_objects