 Chromium Code Reviews
 Chromium Code Reviews Issue 2775983003:
  [Chromoting] Retrieve process resource usage (ProcessStats) and its tests  (Closed)
    
  
    Issue 2775983003:
  [Chromoting] Retrieve process resource usage (ProcessStats) and its tests  (Closed) 
  | OLD | NEW | 
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "base/bind.h" | |
| 6 #include "base/location.h" | |
| 7 #include "base/logging.h" | |
| 8 #include "base/message_loop/message_loop.h" | |
| 9 #include "remoting/host/host_stats.h" | |
| 10 | |
| 11 namespace remoting { | |
| 12 namespace host { | |
| 13 | |
| 14 HostStats::HostStats(HostStatsStub* host_stats_stub, base::TimeDelta interval) | |
| 15 : host_stats_stub_(host_stats_stub), | |
| 16 interval_(interval), | |
| 17 metrics_(base::ProcessMetrics::CreateCurrentProcessMetrics()), | |
| 18 weak_factory_(this) { | |
| 19 DCHECK(host_stats_stub_); | |
| 20 DCHECK(!interval_.is_zero()); | |
| 21 | |
| 22 PostTask(); | |
| 23 } | |
| 24 | |
| 25 HostStats::~HostStats() = default; | |
| 26 | |
| 27 void HostStats::PostTask() { | |
| 28 base::MessageLoop::current()->task_runner()->PostDelayedTask(FROM_HERE, | |
| 
Sergey Ulanov
2017/03/27 19:43:20
I think it would be better to use base::RepeatingT
 
Hzj_jie
2017/03/30 01:09:45
Done.
 | |
| 29 base::Bind(&HostStats::ReportUsage, weak_factory_.GetWeakPtr()), | |
| 30 interval_); | |
| 31 } | |
| 32 | |
| 33 void HostStats::ReportUsage() { | |
| 34 ProcessResourceUsage current; | |
| 35 current.processor_usage = metrics_->GetPlatformIndependentCPUUsage(); | |
| 36 current.working_set_size = metrics_->GetWorkingSetSize(); | |
| 37 current.pagefile_size = metrics_->GetPagefileUsage(); | |
| 38 { | |
| 39 base::AutoLock lock(lock_); | |
| 
Sergey Ulanov
2017/03/27 19:43:20
Why do we need lock?
 
Hzj_jie
2017/03/30 01:09:45
I suppose HostStats::OnHostStats() should be calle
 | |
| 40 current.Append(received_usage_); | |
| 41 } | |
| 42 host_stats_stub_->OnHostStats(current); | |
| 43 | |
| 44 PostTask(); | |
| 45 } | |
| 46 | |
| 47 void HostStats::OnHostStats(const ProcessResourceUsage& usage) { | |
| 48 base::AutoLock lock(lock_); | |
| 49 received_usage_ = usage; | |
| 50 } | |
| 51 | |
| 52 } // namespace host | |
| 53 } // namespace remoting | |
| OLD | NEW |