On 21.09.2011 20:30, Joe Dluzen wrote: > Whoops, forgot to edit subject. This one should make the above email > more apparent. > > On Wed, Sep 21, 2011 at 2:13 PM, Joe Dluzen<jdlu...@gmail.com> wrote: >> Thanks Robert, I expected something like that. >> >> Is there an easy way to determine if the runtime has already been >> initted? I would like to use Mono for practically all logic for my
AFIK, there is no such function, but you could use this test: if (mono_get_root_domain ()) // runtime is already initialized >> unmanaged SO needs, yet allow for the possibility that the application >> is managed. I would like to avoid requiring the app to pass some Mono >> handle into the SO to do all its work, though if that's the way it is, >> then that's the way it is. Then comes the issue of versioning the >> runtimes, 2 corlibs being loaded, etc. Should I just stay away from >> this whole thing? You should avoid this if you don't control Mono on the target machine, because it won't work with a statically linked Mono. If you still believe you need this, then provide a stub for the managed application: a simple native app that embeds Mono and launches the managed application. This way you can be sure that a dynamically linked libmono will be used. >> Are there any complications that I should be aware of when the >> SO+managed code is ready to be unload from the process? Don't try to unload the runtime. While API-wise supported, there are still issues with the unloading. Robert >> >> Thanks, >> Joe >> >>> Date: Tue, 13 Sep 2011 11:53:07 +0200 >>> From: Robert Jordan<robe...@gmx.net> >>> Subject: Re: [Mono-dev] Multiple Monos in a single process >>> To: mono-devel-list@lists.ximian.com >>> Message-ID:<j4n96i$6is$1...@dough.gmane.org> >>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >>> >>> On 12.09.2011 22:23, Joe Dluzen wrote: >>>> Hi all, >>>> >>>> let's say I have a C# app A which PInvokes to a native SO/DLL B, which >>>> embeds Mono for basically 100% of its logic. Do bad things happen on >>>> Linux vs Windows? >>> >>> Yes. Under Linux, libmono is statically linked by default. >>> If you p/invoke a library that it turn is linked against >>> libmono, you'll end up with 2 runtime instances. >>> >>> Even if you link libmono dynamically (there is a `configure' >>> switch for this), you must take care to initialize the runtime >>> only once. This means that you can't call mono_jit_init/cleanup >>> from the SO. >>> >>> Robert _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list