[Python-bugs-list] [ python-Bugs-704180 ] Memory leak: threading.Thread.__init__(self, target=self.xx)
SourceForge.net
noreply@sourceforge.net
Sat, 15 Mar 2003 08:44:55 -0800
Bugs item #704180, was opened at 2003-03-15 16:44
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=704180&group_id=5470
Category: Threads
Group: Python 2.2.2
Status: Open
Resolution: None
Priority: 5
Submitted By: Darrell Gallion (dgallion)
Assigned to: Nobody/Anonymous (nobody)
Summary: Memory leak: threading.Thread.__init__(self, target=self.xx)
Initial Comment:
This call
threading.Thread.__init__(self, target=self.xxx)
makes this assignment
self.__target = target
Which looks like a circular refrence to me.
weakref anyone ?
The following test code shows the leak in action.
--Darrell
import threading, time
class T1(threading.Thread):
def __init__(self, leak=0):
self.leak=leak
if leak:
threading.Thread.__init__(self, target=self.m1)
else:
threading.Thread.__init__(self)
self.start()
def run(self):
pass
def m1(self):
pass
def __del__(self):
print 'DEL:', self, "leak:",self.leak
for x in range(10):
T1(leak=1)
for x in range(10):
T1()
time.sleep(1)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=704180&group_id=5470