| Index: base/profiler/scoped_profile.cc
|
| ===================================================================
|
| --- base/profiler/scoped_profile.cc (revision 0)
|
| +++ base/profiler/scoped_profile.cc (revision 0)
|
| @@ -0,0 +1,31 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "base/profiler/scoped_profile.h"
|
| +
|
| +#include "base/location.h"
|
| +#include "base/tracked_objects.h"
|
| +
|
| +
|
| +namespace tracked_objects {
|
| +
|
| +
|
| +ScopedProfile::ScopedProfile(const Location& location)
|
| + : birth_(ThreadData::TallyABirthIfActive(location)),
|
| + start_of_run_(ThreadData::Now()) {
|
| +}
|
| +
|
| +ScopedProfile::~ScopedProfile() {
|
| + StopClockAndTally();
|
| +}
|
| +
|
| +void ScopedProfile::StopClockAndTally() {
|
| + if (!birth_)
|
| + return;
|
| + ThreadData::TallyRunInAScopedRegionIfTracking(birth_, start_of_run_,
|
| + ThreadData::Now());
|
| + birth_ = NULL;
|
| +}
|
| +
|
| +} // namespace tracked_objects
|
|
|