[Mono-osx] Objective-C and Mono's GC

Andreas Färber andreas.faerber at web.de
Wed Jan 14 12:25:21 EST 2009


Hello,

Am 13.01.2009 um 21:10 schrieb Martin Smith:

> We are working on an application where we're embedding Mono in an  
> Objective-C application.  One of the issues that we're seeing is  
> that if the GC does not "see" pointers that are stored in Objective- 
> C objects.  The side effect is that when we run our applications,  
> the Obj-C objects will have instance variables that will eventually  
> raise a SIGSEV (NullReferenceException) whenever the garbage  
> collector runs.
>
> Does anyone else have experience with this problem?  I know one of  
> the things we could probably do is maintain a data structure that  
> stores all the "live" mono pointers and then write smart pointer  
> classes that explicitly maintained ref counts on these objects, but  
> I'm wondering if there's an easier way.

I have successfully used GC handles from Cocoa, locking and obtaining  
a pointer only when necessary.

Locking only when needed is important for the future "sgen" collector,  
which can thus move the objects around while they are not locked.

Andreas


More information about the Mono-osx mailing list