[Pythonmac-SIG] lots of Python-Cocoa errors in XCode console window...

Bill Janssen janssen at parc.com
Mon Nov 3 17:00:39 CET 2008


So, how does the automatic GC in ObjC-2.0 play into this?

Bill

Jack Jansen <Jack.Jansen at cwi.nl> wrote:
> 
> On 3 nov 2008, at 00:02, Bill Janssen wrote:
> 
> > has <hengist.podd at virgin.net> 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, <Jack.Jansen at cwi.nl>, http://www.cwi.nl/~jack
> If I can't dance I don't want to be part of your revolution -- Emma
> Goldman
> 
> 


More information about the Pythonmac-SIG mailing list