[Python-Dev] Re: Useful thread project for 2.5?

Phillip J. Eby pje at telecommunity.com
Mon Mar 7 03:34:00 CET 2005


At 02:42 PM 3/6/05 -0800, Fazal Majid wrote:
>I suspect integrating this feature (let's call it sys._current_frames() 
>for the sake of argument, although it probably belongs in the threads 
>module) in the core is not going to be quite as trivial as you say, as 
>there are potential memory leaks. If the function returns a dictionary, it 
>should probably be a weak dict to avoid a circular reference between the 
>frame of the thread that calls _current_frames and its locals that contain 
>the returned dictionary.

Given the primary use case as a debugging tool, I don't think the 
circularity will have any significant problems.  It would be simpler to 
just document that a caller should do this:

     try:
         framedict = sys._current_frames()
         # do stuff here
     finally:
         framedict = None  # break the cycle, allowing GC




More information about the Python-Dev mailing list