Catch a potential OSError if the child process has already died.
authorZac Medico <zmedico@gentoo.org>
Fri, 18 May 2007 17:48:07 +0000 (17:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 18 May 2007 17:48:07 +0000 (17:48 -0000)
svn path=/main/trunk/; revision=6550

pym/portage/__init__.py

index 9b9fbdcb6b9a917276ab5c589725df6174f7c9a5..f5843815860744e7062358afa8366a38a2f488b1 100644 (file)
@@ -2341,7 +2341,10 @@ def spawn(mystring, mysettings, debug=0, free=0, droppriv=0, sesandbox=0, **keyw
        if input_pid:
                # cat is blocking on stdin, so it must be killed.
                import signal
-               os.kill(input_pid, signal.SIGTERM)
+               try:
+                       os.kill(input_pid, signal.SIGTERM)
+               except OSError:
+                       pass # it died by itself
                os.waitpid(input_pid, 0)
                portage.process.spawned_pids.remove(input_pid)
        pid = mypids[-1]