I'm writing code that retrieves URLs to files on disk using tcl's http module. (Why bother? See P.S.)
So far, so good, but I'm a bit worried I may be leaking memory. Thus I open the output file and start the transfer with: self._tclFile = self._tkApp.call('open', self.toPath, mode) mode,)) self._tclHTTPConn = self._tkApp.call( '::http::geturl', self.url, '-channel', self._tclFile, '-command', self._tclHTTPDoneCallback, '-progress', self._tclHTTPProgressCallback, '-binary', self.isBinary, '-timeout', self.timeLimMS ) And clean up afterwards using: self._tclHTTPConn != None: self._tkApp.call("::http::cleanup", self._tclHTTPConn) self._tclHTTPConn = None self._tclFile: self._tkApp.call("close", self._tclFile) self._tclFile = None and I delete the callbacks from tcl using self._tkApp.deletecommand. It works, but I'm wondering if I'm leaking the reference to the file or http connection that was created inside tcl. If so, any hints on how to clean those up would be much appreciated. -- Russell P.S. why bother: - I don't want my users to have to install Twisted framework. Though I get closer to that every time something like this comes up. - I've tried using the built in python libraries for stuff like this, but it's a hassle due to no integration with the tk event loop. The resulting code does work, but doing without blocking is painful as is keeping track of state. Plus I've had reports of occasional failures that I can't reproduce on my computer. P.P.S. The resulting code will be released in an update to my free RO package <http://www.astro.washington.edu/rowen/ROPython.html>. The package already includes tk sockets and lots of other goodies. _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss