[Mono-osx] Objective-C and Mono's GC
Duane Wandless
duane at wandless.net
Tue Jan 13 15:44:46 EST 2009
I think I understand your problem... but it might be different than what I
encountered. Basically there are issues with the GC collectors of both C#
and Obj-C. Neither knows about objects created in the other world. In my
application I have an Obj-C application that runs and embeds Mono. The Mono
code creates lots of C# objects. When the GC from Obj-C runs it destroys my
C# objects that are created using Monobjc, or mobjc (which is faster and a
smaller memory footprint).
The basic recommendation is don't use the Obj-C GC when embedding Mono. So
what I did was: in my constructor for my C# objects I send an event to the
Obj-C world to add the object to a list. Then in the deconstructor I
release them from the Obj-C list. This allows the use of the Obj-C GC.
Best of luck.
On Tue, Jan 13, 2009 at 3:10 PM, Martin Smith <martin.smith.jr at gmail.com>wrote:
> Hello,
>
> 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.
>
> Thanks in advance,
> Martin
>
> _______________________________________________
> Mono-osx mailing list
> Mono-osx at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-osx
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20090113/9073e03b/attachment-0001.html
More information about the Mono-osx
mailing list