Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(347)

Side by Side Diff: base/tracked_objects.cc

Issue 2695013005: Only enable heap tracking under --enable-heap-profiling=task-profiler. (Closed)
Patch Set: Address Gab's nit. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/trace_event/memory_dump_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/tracked_objects.h" 5 #include "base/tracked_objects.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 #include <limits.h> 8 #include <limits.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 10
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 776
777 // Incarnation counter is only significant to testing, as it otherwise will 777 // Incarnation counter is only significant to testing, as it otherwise will
778 // never again change in this process. 778 // never again change in this process.
779 ++incarnation_counter_; 779 ++incarnation_counter_;
780 780
781 // The lock is not critical for setting status_, but it doesn't hurt. It also 781 // The lock is not critical for setting status_, but it doesn't hurt. It also
782 // ensures that if we have a racy initialization, that we'll bail as soon as 782 // ensures that if we have a racy initialization, that we'll bail as soon as
783 // we get the lock earlier in this method. 783 // we get the lock earlier in this method.
784 base::subtle::Release_Store(&status_, kInitialStartupState); 784 base::subtle::Release_Store(&status_, kInitialStartupState);
785 DCHECK(base::subtle::NoBarrier_Load(&status_) != UNINITIALIZED); 785 DCHECK(base::subtle::NoBarrier_Load(&status_) != UNINITIALIZED);
786
787 #if BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER)
788 // Make sure heap tracking is enabled ASAP if the default state is active.
789 if (kInitialStartupState == PROFILING_ACTIVE &&
790 !base::debug::ThreadHeapUsageTracker::IsHeapTrackingEnabled()) {
791 base::debug::ThreadHeapUsageTracker::EnableHeapTracking();
792 }
793 #endif // BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER)
794 } 786 }
795 787
796 // static 788 // static
797 void ThreadData::InitializeAndSetTrackingStatus(Status status) { 789 void ThreadData::InitializeAndSetTrackingStatus(Status status) {
798 DCHECK_GE(status, DEACTIVATED); 790 DCHECK_GE(status, DEACTIVATED);
799 DCHECK_LE(status, PROFILING_ACTIVE); 791 DCHECK_LE(status, PROFILING_ACTIVE);
800 792
801 EnsureTlsInitialization(); // No-op if already initialized. 793 EnsureTlsInitialization(); // No-op if already initialized.
802 794
803 if (status > DEACTIVATED) { 795 if (status > DEACTIVATED)
804 status = PROFILING_ACTIVE; 796 status = PROFILING_ACTIVE;
805 797
806 #if BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER)
807 if (!base::debug::ThreadHeapUsageTracker::IsHeapTrackingEnabled())
808 base::debug::ThreadHeapUsageTracker::EnableHeapTracking();
809 #endif // BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER)
810 }
811 base::subtle::Release_Store(&status_, status); 798 base::subtle::Release_Store(&status_, status);
812 } 799 }
813 800
814 // static 801 // static
815 ThreadData::Status ThreadData::status() { 802 ThreadData::Status ThreadData::status() {
816 return static_cast<ThreadData::Status>(base::subtle::Acquire_Load(&status_)); 803 return static_cast<ThreadData::Status>(base::subtle::Acquire_Load(&status_));
817 } 804 }
818 805
819 // static 806 // static
820 bool ThreadData::TrackingStatus() { 807 bool ThreadData::TrackingStatus() {
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 #endif 1076 #endif
1090 } 1077 }
1091 1078
1092 ProcessDataSnapshot::ProcessDataSnapshot(const ProcessDataSnapshot& other) = 1079 ProcessDataSnapshot::ProcessDataSnapshot(const ProcessDataSnapshot& other) =
1093 default; 1080 default;
1094 1081
1095 ProcessDataSnapshot::~ProcessDataSnapshot() { 1082 ProcessDataSnapshot::~ProcessDataSnapshot() {
1096 } 1083 }
1097 1084
1098 } // namespace tracked_objects 1085 } // namespace tracked_objects
OLDNEW
« no previous file with comments | « base/trace_event/memory_dump_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698