diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-08-12 23:58:22 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-08-12 23:58:22 -0700 |
commit | e652a10a1e877e3411d93f45a40c3c25d911876f (patch) | |
tree | ac5ec9045aa0d8526e0ec21051af6f2df03ca154 | |
parent | 28744162a6ed820a632efc77f44a3e1074b9af72 (diff) | |
download | portage-e652a10a1e877e3411d93f45a40c3c25d911876f.tar.gz portage-e652a10a1e877e3411d93f45a40c3c25d911876f.tar.bz2 portage-e652a10a1e877e3411d93f45a40c3c25d911876f.zip |
Call pickle.load() directly on the input pipe, and handle exceptions.
-rw-r--r-- | pym/_emerge/EbuildIpcDaemon.py | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/pym/_emerge/EbuildIpcDaemon.py b/pym/_emerge/EbuildIpcDaemon.py index 0715dc1f0..5f3d2ed01 100644 --- a/pym/_emerge/EbuildIpcDaemon.py +++ b/pym/_emerge/EbuildIpcDaemon.py @@ -1,7 +1,6 @@ # Copyright 2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -import array import errno import pickle from portage import os @@ -31,14 +30,12 @@ class EbuildIpcDaemon(FifoIpcDaemon): if event & PollConstants.POLLIN: - buf = array.array('B') try: - buf.fromfile(self._files.pipe_in, self._bufsize) - except (EOFError, IOError): + obj = pickle.load(self._files.pipe_in) + except (EnvironmentError, EOFError, ValueError, + pickle.UnpicklingError): pass - - if buf: - obj = pickle.loads(buf.tostring()) + else: cmd_key = obj[0] cmd_handler = self.commands[cmd_key] reply = cmd_handler(obj) |