Forcing finalization on the main thread?
Forcing finalization on the main thread?
- Subject: Forcing finalization on the main thread?
- From: Nick Zitzmann <email@hidden>
- Date: Sun, 7 Sep 2008 16:25:02 -0600
I've got a C data structure in a GC-enabled app. I'm deallocating the
structure when the parent object is finished, in -dealloc and -
finalize. I've found out the hard way that the data structure is not
thread-safe, and eventually causes a crash if deallocated on a thread
other than the main thread. Of course, when GC is running, most
deallocations occur on another thread.
So I've looked in the documentation and haven't found anything. Is
there a way to force a collected object to be finalized on the main
thread, and nowhere else? If so, then how do I do this?
I already tried:
1. Calling -performSelectorOnMainThread:... in the -finalize method.
Of course it caused the object to be resurrected, which just made the
problem worse.
2. Allocating the parent object in an unscanned zone, hoping that
retain/release would make a comeback, but it didn't.
Nick Zitzmann
<http://www.chronosnet.com/>
_______________________________________________
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