diff options
author | Armin Rigo <arigo@tunes.org> | 2019-04-17 11:54:09 +0200 |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2019-04-17 11:54:09 +0200 |
commit | 8a328ba0d72127d118d70020c591a0de7353baf0 (patch) | |
tree | 6fe66a40e113f67522f337affc75edb0a1b4e036 /pypy/doc/cpython_differences.rst | |
parent | add back mistakenly removed tag (diff) | |
download | pypy-8a328ba0d72127d118d70020c591a0de7353baf0.tar.gz pypy-8a328ba0d72127d118d70020c591a0de7353baf0.tar.bz2 pypy-8a328ba0d72127d118d70020c591a0de7353baf0.zip |
Document the newer CPython finalizer behaviour
Diffstat (limited to 'pypy/doc/cpython_differences.rst')
-rw-r--r-- | pypy/doc/cpython_differences.rst | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/pypy/doc/cpython_differences.rst b/pypy/doc/cpython_differences.rst index af1981a704..32aa55335e 100644 --- a/pypy/doc/cpython_differences.rst +++ b/pypy/doc/cpython_differences.rst @@ -88,7 +88,9 @@ and the callback will not be invoked. (Issue `#2030`__) There are a few extra implications from the difference in the GC. Most notably, if an object has a ``__del__``, the ``__del__`` is never called more than once in PyPy; but CPython will call the same ``__del__`` several times -if the object is resurrected and dies again. The ``__del__`` methods are +if the object is resurrected and dies again (at least it is reliably so in +older CPythons; newer CPythons try to call destructors not more than once, +but there are counter-examples). The ``__del__`` methods are called in "the right" order if they are on objects pointing to each other, as in CPython, but unlike CPython, if there is a dead cycle of objects referencing each other, their ``__del__`` methods are called anyway; |