| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/trace_event/memory_dump_scheduler.h" | 5 #include "base/trace_event/memory_dump_scheduler.h" |
| 6 | 6 |
| 7 #include "base/process/process_metrics.h" | 7 #include "base/process/process_metrics.h" |
| 8 #include "base/single_thread_task_runner.h" | 8 #include "base/single_thread_task_runner.h" |
| 9 #include "base/threading/thread_task_runner_handle.h" | 9 #include "base/threading/thread_task_runner_handle.h" |
| 10 #include "base/trace_event/memory_dump_manager.h" | 10 #include "base/trace_event/memory_dump_manager.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 polling_state_.current_state = PollingTriggerState::ENABLED; | 89 polling_state_.current_state = PollingTriggerState::ENABLED; |
| 90 polling_state_.ResetTotals(); | 90 polling_state_.ResetTotals(); |
| 91 | 91 |
| 92 polling_state_.polling_task_runner->PostTask( | 92 polling_state_.polling_task_runner->PostTask( |
| 93 FROM_HERE, | 93 FROM_HERE, |
| 94 Bind(&MemoryDumpScheduler::PollMemoryOnPollingThread, Unretained(this))); | 94 Bind(&MemoryDumpScheduler::PollMemoryOnPollingThread, Unretained(this))); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void MemoryDumpScheduler::NotifyDumpTriggered() { | 97 void MemoryDumpScheduler::NotifyDumpTriggered() { |
| 98 if (polling_state_.polling_task_runner && | 98 if (polling_state_.polling_task_runner && |
| 99 polling_state_.polling_task_runner->RunsTasksOnCurrentThread()) { | 99 !polling_state_.polling_task_runner->RunsTasksOnCurrentThread()) { |
| 100 polling_state_.polling_task_runner->PostTask( | 100 polling_state_.polling_task_runner->PostTask( |
| 101 FROM_HERE, | 101 FROM_HERE, |
| 102 Bind(&MemoryDumpScheduler::NotifyDumpTriggered, Unretained(this))); | 102 Bind(&MemoryDumpScheduler::NotifyDumpTriggered, Unretained(this))); |
| 103 return; | 103 return; |
| 104 } | 104 } |
| 105 if (polling_state_.current_state != PollingTriggerState::ENABLED) | 105 if (polling_state_.current_state != PollingTriggerState::ENABLED) |
| 106 return; | 106 return; |
| 107 | 107 |
| 108 polling_state_.ResetTotals(); | 108 polling_state_.ResetTotals(); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void MemoryDumpScheduler::DisableAllTriggers() { | 111 void MemoryDumpScheduler::DisableAllTriggers() { |
| 112 if (periodic_state_.timer.IsRunning()) | 112 if (periodic_state_.timer.IsRunning()) |
| 113 periodic_state_.timer.Stop(); | 113 periodic_state_.timer.Stop(); |
| 114 DisablePolling(); | 114 DisablePolling(); |
| 115 } | 115 } |
| 116 | 116 |
| 117 void MemoryDumpScheduler::DisablePolling() { | 117 void MemoryDumpScheduler::DisablePolling() { |
| 118 if (polling_state_.polling_task_runner->RunsTasksOnCurrentThread()) { | 118 if (!polling_state_.polling_task_runner->RunsTasksOnCurrentThread()) { |
| 119 if (polling_state_.polling_task_runner->PostTask( | 119 if (polling_state_.polling_task_runner->PostTask( |
| 120 FROM_HERE, | 120 FROM_HERE, |
| 121 Bind(&MemoryDumpScheduler::DisablePolling, Unretained(this)))) | 121 Bind(&MemoryDumpScheduler::DisablePolling, Unretained(this)))) |
| 122 return; | 122 return; |
| 123 } | 123 } |
| 124 polling_state_.current_state = PollingTriggerState::DISABLED; | 124 polling_state_.current_state = PollingTriggerState::DISABLED; |
| 125 polling_state_.polling_task_runner = nullptr; | 125 polling_state_.polling_task_runner = nullptr; |
| 126 } | 126 } |
| 127 | 127 |
| 128 // static | 128 // static |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 last_memory_totals_kb[last_memory_totals_kb_index] * 1024; | 295 last_memory_totals_kb[last_memory_totals_kb_index] * 1024; |
| 296 } | 296 } |
| 297 num_polls_from_last_dump = 0; | 297 num_polls_from_last_dump = 0; |
| 298 for (uint32_t i = 0; i < kMaxNumMemorySamples; ++i) | 298 for (uint32_t i = 0; i < kMaxNumMemorySamples; ++i) |
| 299 last_memory_totals_kb[i] = 0; | 299 last_memory_totals_kb[i] = 0; |
| 300 last_memory_totals_kb_index = 0; | 300 last_memory_totals_kb_index = 0; |
| 301 } | 301 } |
| 302 | 302 |
| 303 } // namespace trace_event | 303 } // namespace trace_event |
| 304 } // namespace base | 304 } // namespace base |
| OLD | NEW |