ออฟไลน์ด้วยแอป Player FM !
PyObject preservation
Manage episode 294513501 series 2921809
Given two separately refcounted objects, how can you arrange for each of them to stay live so long as the other is live? Why doesn't just having a strong-strong or strong-weak reference between the two objects work? What is object resurrection in CPython? What's a finalizer and why does it make things more complicated? How does Python GC work?
Further reading.
- PyObject preservation PR https://github.com/pytorch/pytorch/pull/56017
- Sam Gross's original PoC, which works fine if the two objects in question are both PyObjects https://github.com/colesbury/refcount/
- PEP 442 Safe object finalization https://www.python.org/dev/peps/pep-0442/
- Essential reading about Python GC https://devguide.python.org/garbage_collector/
83 ตอน
Manage episode 294513501 series 2921809
Given two separately refcounted objects, how can you arrange for each of them to stay live so long as the other is live? Why doesn't just having a strong-strong or strong-weak reference between the two objects work? What is object resurrection in CPython? What's a finalizer and why does it make things more complicated? How does Python GC work?
Further reading.
- PyObject preservation PR https://github.com/pytorch/pytorch/pull/56017
- Sam Gross's original PoC, which works fine if the two objects in question are both PyObjects https://github.com/colesbury/refcount/
- PEP 442 Safe object finalization https://www.python.org/dev/peps/pep-0442/
- Essential reading about Python GC https://devguide.python.org/garbage_collector/
83 ตอน
ทุกตอน
×ขอต้อนรับสู่ Player FM!
Player FM กำลังหาเว็บ