Bug 1013730 - Have mach ignore broken disk io stats; r=gps

This works around the "RuntimeError: couldn't find any physical disk"
issue on Windows when using 'diskperf -n'
This commit is contained in:
Mike Shal 2014-10-01 13:14:58 -04:00
parent e97bf58c21
commit 1faea8e362

View File

@ -19,6 +19,14 @@ from collections import (
from contextlib import contextmanager
def get_disk_io_counters():
try:
io_counters = psutil.disk_io_counters()
except RuntimeError:
io_counters = []
return io_counters
def _collect(pipe, poll_interval):
"""Collects system metrics.
@ -34,7 +42,7 @@ def _collect(pipe, poll_interval):
# We should ideally use a monotonic clock. However, Python 2.7 doesn't
# make a monotonic clock available on all platforms. Python 3.3 does!
last_time = time.time()
io_last = psutil.disk_io_counters()
io_last = get_disk_io_counters()
cpu_last = psutil.cpu_times(True)
swap_last = psutil.swap_memory()
psutil.cpu_percent(None, True)
@ -45,7 +53,7 @@ def _collect(pipe, poll_interval):
sleep_interval = poll_interval
while not pipe.poll(sleep_interval):
io = psutil.disk_io_counters()
io = get_disk_io_counters()
cpu_times = psutil.cpu_times(True)
cpu_percent = psutil.cpu_percent(None, True)
virt_mem = psutil.virtual_memory()
@ -176,7 +184,7 @@ class SystemResourceMonitor(object):
cpu_percent = psutil.cpu_percent(0.0, True)
cpu_times = psutil.cpu_times(False)
io = psutil.disk_io_counters()
io = get_disk_io_counters()
virt = psutil.virtual_memory()
swap = psutil.swap_memory()