From 69500d28402817fb70c104501b5c8f4f54650f4a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 22 Jun 2009 18:21:56 +0000 Subject: Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 2). Thanks to Sebastian Mingramm (few) for this patch. svn path=/main/trunk/; revision=13667 --- pym/_emerge/getloadavg.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pym/_emerge/getloadavg.py (limited to 'pym/_emerge/getloadavg.py') 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) -- cgit v1.2.3-1-g7c22