From 99d17006c12d2e768a7b8e1c706adf6b4e152140 Mon Sep 17 00:00:00 2001
From: Fred Drake <fdrake@acm.org>
Date: Tue, 23 Apr 2002 21:21:20 +0000
Subject: Add text about circular references caused by storing frames in local
 variables.  This closes SF bug #543148.

---
 Doc/lib/libinspect.tex | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Doc/lib/libinspect.tex b/Doc/lib/libinspect.tex
index 186fd58..a1293f0 100644
--- a/Doc/lib/libinspect.tex
+++ b/Doc/lib/libinspect.tex
@@ -321,3 +321,19 @@ which occurs.}
   Return a list of frame records for the stack below the current
   exception.
 \end{funcdesc}
+
+Stackframes stored directly or indirectly in local variables can
+easily cause reference cycles.  Though the cycle detector will catch
+these, destruction of the frames (and local variables) can be made
+deterministic by removing the cycle in a \keyword{finally} clause.
+This is also important if the cycle detector was disabled when Python
+was compiled or using \function{gc.disable()}.  For example:
+
+\begin{verbatim}
+def handle_stackframe_without_leak():
+    frame = inspect.currentframe()
+    try:
+        # do something with the frame
+    finally:
+        del frame
+\end{verbatim}
-- 
cgit v0.12

