gecko-dev/testing/mozbase/mozsystemmonitor
Mike Hommey 2874ecd82e Bug 1384062 - Make SystemResourceMonitor.stop more resilient to errors. r=ahal,gps
The poll() call in SystemResourceMonitor.stop might fail even though
there is something to read from the pipe, in some corner cases, and
python won't let us know about it. In that case, an exception is thrown,
leaving the SystemResourceMonitor (and its callers) in a weird state. In
practice, this leads BuildMonitor.__exit__ to recall stop, which then
fails.

So when poll() throws an exception, we pretend there's still something
to read, and we try to read anyways. If there is something to read,
recv() will return it, otherwise, it will throw an exception of its own,
which we catch, pretending we're done.

Furthermore, when there is nothing to read from the pipe, poll() simply
returns False, and our loop never sets `done` to True, and we then hit
an assert, which doesn't have its place here, so we remove it.

Finally, the other end of the pipe might have died at any time, making
sending over the pipe fail, so we also protect against that.

With all these changes, it feels like the reason to backout bug 1239939
in bug 1272782 should have been dealt with, and we can drop the timeout
again.

--HG--
extra : rebase_source : ac72dd5b2602cf3ffddfb429f95e02380f939893
2017-08-16 13:16:16 +09:00
..
mozsystemmonitor Bug 1384062 - Make SystemResourceMonitor.stop more resilient to errors. r=ahal,gps 2017-08-16 13:16:16 +09:00
tests Bug 1003417 - Add a 'mozbase' subsuite to python unittests on linux, r=ted 2016-11-16 16:43:42 -05:00
README.rst
setup.py Bug 1272782 - Bump mozsystemmonitor version to 0.3; r=ahal 2016-05-13 14:11:40 -07:00

================
mozsystemmonitor
================

mozsystemmonitor contains modules for monitoring a running system.

SystemResourceMonitor
=====================

mozsystemmonitor.resourcemonitor.SystemResourceMonitor is class used to
measure system resource usage. It is useful to get a handle on what an
overall system is doing.