scoped_profile.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2011 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. 4 5#include "base/profiler/scoped_profile.h" 6 7#include "base/location.h" 8#include "base/tracked_objects.h" 9 10 11namespace tracked_objects { 12 13 14ScopedProfile::ScopedProfile(const Location& location) 15 : birth_(ThreadData::TallyABirthIfActive(location)), 16 start_of_run_(ThreadData::NowForStartOfRun(birth_)) { 17} 18 19ScopedProfile::~ScopedProfile() { 20 StopClockAndTally(); 21} 22 23void ScopedProfile::StopClockAndTally() { 24 if (!birth_) 25 return; 26 ThreadData::TallyRunInAScopedRegionIfTracking(birth_, start_of_run_, 27 ThreadData::NowForEndOfRun()); 28 birth_ = NULL; 29} 30 31} // namespace tracked_objects 32