diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-06-22 18:21:56 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-06-22 18:21:56 +0000 |
commit | 69500d28402817fb70c104501b5c8f4f54650f4a (patch) | |
tree | b718c8028eb09ad8e8fb5e1503df58abb502b712 /pym/_emerge/getloadavg.py | |
parent | 13d9a8d5f95575c814570cd4e5713541ed022f37 (diff) | |
download | portage-69500d28402817fb70c104501b5c8f4f54650f4a.tar.gz portage-69500d28402817fb70c104501b5c8f4f54650f4a.tar.bz2 portage-69500d28402817fb70c104501b5c8f4f54650f4a.zip |
Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 2).
Thanks to Sebastian Mingramm (few) <s.mingramm@gmx.de> for this patch.
svn path=/main/trunk/; revision=13667
Diffstat (limited to 'pym/_emerge/getloadavg.py')
-rw-r--r-- | pym/_emerge/getloadavg.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pym/_emerge/getloadavg.py b/pym/_emerge/getloadavg.py new file mode 100644 index 000000000..b5a66cce9 --- /dev/null +++ b/pym/_emerge/getloadavg.py @@ -0,0 +1,24 @@ +import os + +getloadavg = getattr(os, "getloadavg", None) +if getloadavg is None: + def getloadavg(): + """ + Uses /proc/loadavg to emulate os.getloadavg(). + Raises OSError if the load average was unobtainable. + """ + try: + loadavg_str = open('/proc/loadavg').readline() + except IOError: + # getloadavg() is only supposed to raise OSError, so convert + raise OSError('unknown') + loadavg_split = loadavg_str.split() + if len(loadavg_split) < 3: + raise OSError('unknown') + loadavg_floats = [] + for i in xrange(3): + try: + loadavg_floats.append(float(loadavg_split[i])) + except ValueError: + raise OSError('unknown') + return tuple(loadavg_floats) |