diff options
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/base/cpumonitor.cc')
-rw-r--r-- | chromium/third_party/libjingle/source/talk/base/cpumonitor.cc | 10 |
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; } |