summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/libjingle/source/talk/base/cpumonitor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/base/cpumonitor.cc')
-rw-r--r--chromium/third_party/libjingle/source/talk/base/cpumonitor.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/chromium/third_party/libjingle/source/talk/base/cpumonitor.cc b/chromium/third_party/libjingle/source/talk/base/cpumonitor.cc
index e9b481fdbd9..aaec77208d4 100644
--- a/chromium/third_party/libjingle/source/talk/base/cpumonitor.cc
+++ b/chromium/third_party/libjingle/source/talk/base/cpumonitor.cc
@@ -48,6 +48,7 @@
#if defined(IOS) || defined(OSX)
#include <mach/mach_host.h>
#include <mach/mach_init.h>
+#include <mach/mach_port.h>
#include <mach/host_info.h>
#include <mach/task.h>
#endif // defined(IOS) || defined(OSX)
@@ -241,11 +242,14 @@ float CpuSampler::GetSystemLoad() {
#endif // WIN32
#if defined(IOS) || defined(OSX)
+ mach_port_t mach_host = mach_host_self();
host_cpu_load_info_data_t cpu_info;
mach_msg_type_number_t info_count = HOST_CPU_LOAD_INFO_COUNT;
- if (KERN_SUCCESS != host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO,
- reinterpret_cast<host_info_t>(&cpu_info),
- &info_count)) {
+ kern_return_t kr = host_statistics(mach_host, HOST_CPU_LOAD_INFO,
+ reinterpret_cast<host_info_t>(&cpu_info),
+ &info_count);
+ mach_port_deallocate(mach_task_self(), mach_host);
+ if (KERN_SUCCESS != kr) {
LOG(LS_ERROR) << "::host_statistics() failed";
return 0.f;
}