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 |