So, how does the automatic GC in ObjC-2.0 play into this? Bill
Jack Jansen <[EMAIL PROTECTED]> wrote: > > On 3 nov 2008, at 00:02, Bill Janssen wrote: > > > has <[EMAIL PROTECTED]> wrote: > > > >> You're leaking memory, which isn't a good thing. > >> > >> Are you using background threads? PyObjC automatically creates an > >> autorelease pool for the main thread only; you need to provide > >> autorelease pools for other threads yourself. > > > > Yes, I am using background threads. I have some functions triggered > > by > > actions which make calls on remote services, and so may take > > arbitrarily > > long to execute; I fork worker threads to do that fetch. I'm using > > Python's threading.Thread; should my "target" function look like this? > > > > def thread_target(*args): > > pool = NSAutoreleasePool.alloc().init() > > try: > > ... > > finally: > > del pool > > I don't even think you need the try/finally and the del: > def thread_target(*args): > pool = NSAutoReleasePool.alloc().init() > ... > > The pool will be discarded when the thread exits, and that's that. > > Of course, if you want the pool to be emptied more often you have to > add code to do that. > > > -- > Jack Jansen, <[EMAIL PROTECTED]>, http://www.cwi.nl/~jack > If I can't dance I don't want to be part of your revolution -- Emma > Goldman > > _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig