OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/debug/activity_tracker.h" | 5 #include "base/debug/activity_tracker.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1364 DCHECK_LE(stack_memory_size_, allocator_->GetAllocSize(mem_reference)); | 1364 DCHECK_LE(stack_memory_size_, allocator_->GetAllocSize(mem_reference)); |
1365 | 1365 |
1366 // Create a tracker with the acquired memory and set it as the tracker | 1366 // Create a tracker with the acquired memory and set it as the tracker |
1367 // for this particular thread in thread-local-storage. | 1367 // for this particular thread in thread-local-storage. |
1368 ManagedActivityTracker* tracker = | 1368 ManagedActivityTracker* tracker = |
1369 new ManagedActivityTracker(mem_reference, mem_base, stack_memory_size_); | 1369 new ManagedActivityTracker(mem_reference, mem_base, stack_memory_size_); |
1370 DCHECK(tracker->IsValid()); | 1370 DCHECK(tracker->IsValid()); |
1371 this_thread_tracker_.Set(tracker); | 1371 this_thread_tracker_.Set(tracker); |
1372 int old_count = thread_tracker_count_.fetch_add(1, std::memory_order_relaxed); | 1372 int old_count = thread_tracker_count_.fetch_add(1, std::memory_order_relaxed); |
1373 | 1373 |
1374 UMA_HISTOGRAM_ENUMERATION("ActivityTracker.ThreadTrackers.Count", | 1374 UMA_HISTOGRAM_EXACT_LINEAR("ActivityTracker.ThreadTrackers.Count", |
1375 old_count + 1, kMaxThreadCount); | 1375 old_count + 1, static_cast<int>(kMaxThreadCount)); |
1376 return tracker; | 1376 return tracker; |
1377 } | 1377 } |
1378 | 1378 |
1379 void GlobalActivityTracker::ReleaseTrackerForCurrentThreadForTesting() { | 1379 void GlobalActivityTracker::ReleaseTrackerForCurrentThreadForTesting() { |
1380 ThreadActivityTracker* tracker = | 1380 ThreadActivityTracker* tracker = |
1381 reinterpret_cast<ThreadActivityTracker*>(this_thread_tracker_.Get()); | 1381 reinterpret_cast<ThreadActivityTracker*>(this_thread_tracker_.Get()); |
1382 if (tracker) { | 1382 if (tracker) { |
1383 this_thread_tracker_.Set(nullptr); | 1383 this_thread_tracker_.Set(nullptr); |
1384 delete tracker; | 1384 delete tracker; |
1385 } | 1385 } |
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1783 : GlobalActivityTracker::ScopedThreadActivity( | 1783 : GlobalActivityTracker::ScopedThreadActivity( |
1784 program_counter, | 1784 program_counter, |
1785 nullptr, | 1785 nullptr, |
1786 Activity::ACT_PROCESS_WAIT, | 1786 Activity::ACT_PROCESS_WAIT, |
1787 ActivityData::ForProcess(process->Pid()), | 1787 ActivityData::ForProcess(process->Pid()), |
1788 /*lock_allowed=*/true) {} | 1788 /*lock_allowed=*/true) {} |
1789 #endif | 1789 #endif |
1790 | 1790 |
1791 } // namespace debug | 1791 } // namespace debug |
1792 } // namespace base | 1792 } // namespace base |
OLD | NEW |