• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: use finalize for removing AppleEvent handlers in GC apps?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: use finalize for removing AppleEvent handlers in GC apps?


  • Subject: Re: use finalize for removing AppleEvent handlers in GC apps?
  • From: Bill Bumgarner <email@hidden>
  • Date: Thu, 3 Jan 2008 15:10:00 -0800

On Jan 3, 2008, at 2:24 PM, Sean McBride wrote:
It seems that before GC, you would remove this handler in the dalloc
method. (correct me if i'm wrong there)

- (void)dealloc {
	...
	[[NSAppleEventManager sharedAppleEventManager]
removeEventHandlerForEventClass:kInternetEventClass
andEventID:kAEGetURL];
	...
}

In a GC app, should you do that removal in finalize instead? or
somewhere else? or not at all?

Well, everything in -finalize has to be thread-safe. Is NSAppleEventManager thread safe? If not, then -finalize is a very bad place to do that.

In general, -finalize is a very bad place to do anything but memory management. And, given that GC does almost all memory management for you, that makes -finalize just a very bad place. Order is undefined and the thread of execution may be random, too.


Work to remove all -finalize methods from your app. Your codebase will be happier for it.

In particular, having some kind of an "I'm done with this subgraph, go tear down scarce or sensitive resources in an orderly fashion" notification will address this issue.

b.bum
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Re: use finalize for removing AppleEvent handlers in GC apps? (From: "Sean McBride" <email@hidden>)

  • Prev by Date: Re: NSImage to PDFPage in Tiger?
  • Next by Date: Questions about enhancing the Learn Cocoa II app.
  • Previous by thread: Re: use finalize for removing AppleEvent handlers in GC apps?
  • Next by thread: Questions about enhancing the Learn Cocoa II app.
  • Index(es):
    • Date
    • Thread