Re: IOObjectRelease: passing null? threadsafe?
Re: IOObjectRelease: passing null? threadsafe?
- Subject: Re: IOObjectRelease: passing null? threadsafe?
- From: Terry Lambert <email@hidden>
- Date: Mon, 20 Oct 2008 20:17:34 -0700
On Oct 20, 2008, at 3:41 PM, Sean McBride wrote:
Hi all,
The docs for IOObjectRelease() are terse. I'm wondering:
1) How does IOObjectRelease() react to being given null? Does it do
nothing like free() or crash like CFRelease()? Yes, I could try, but
I'm looking for an API guarantee one way or the other.
2) Is IOObjectRelease() threadsafe? Specifically, if I create some
object on the main thread, is it safe to IOObjectRelease() it from an
Objective-C garbage collector finalize method (which runs on its own
thread)?
If you pass it a NULL, that is the same as MACH_PORT_NULL, which makes
MACH_PORT_VALID() false, which makes mach_port_deallocate() simply
return KERN_SUCCESS, which causes the function to return that.
However, it would be better if you didn't depend on there being a
safety net there, and only pass in valid object references for which
you've previously done a retain.
-- Terry
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden