[pypy-dev] "OSError: [Errno 10] No child processes"

Amaury Forgeot d'Arc amauryfa at gmail.com
Tue Jan 11 22:09:21 CET 2011


2011/1/11 Armin Rigo <arigo at tunes.org>:
> The secondary problem that we have is what to do when file.__del__
> gets an exception from calling close().  Is it ok to just ignore it?
> FWIW in CPython, file.__del__ also prints an error message if close()
> raises an exception.  So from that point of view there is nothing to
> fix in PyPy, apart maybe making the error message a bit more explicit
> (CPython prints "close failed in file object destructor:...").

The io module chose to silence the error;
I suggest to do the same, even if the reasoning is different
from the comment below::

class IOBase:
    def __del__(self):
        """Destructor.  Calls close()."""
        # The try/except block is in case this is called at program
        # exit time, when it's possible that globals have already been
        # deleted, and then the close() call might fail.  Since
        # there's nothing we can do about such failures and they annoy
        # the end users, we suppress the traceback.
        try:
            self.close()
        except:
            pass

-- 
Amaury Forgeot d'Arc



More information about the Pypy-dev mailing list