Synchronized with the web/ version
authorMiguel de Icaza <miguel@gnome.org>
Mon, 6 Sep 2004 17:13:25 +0000 (17:13 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 6 Sep 2004 17:13:25 +0000 (17:13 -0000)
svn path=/trunk/mono/; revision=33431

docs/embedded-api

index 1fd739ae2ba82eda4fbb23486982cd6fabf74f7d..76f45f8be7319efbb76cf1c51c56fa94fa806e27 100644 (file)
        not interfere with code in other domains.  This is useful if
        you want to host different applications in your program.  
 
-       Then you can load an assembly containing code into the domain:
+       Now, it is necessary to transfer control to Mono, and setup
+       the threading infrastructure, you do this like this:
+
+               void *user_data = NULL;
+
+               mono_runtime_exec_managed_code (domain, main_thread_handler, user_data);
+
+       Where your main_thread_handler can load your assembly and execute it:
+
+       static void main_thread_handler (gpointer user_data)
 
                MonoAssembly *assembly;
 
        layer, so in each file where you use pthread.h you should
        include the <gc/gc.h> file.  
 
+       If you can not do this for any reasons, just remember that you
+       can not store pointers to Mono Objects on the stack, you can
+       store them safely in the heap, or in global variables though
+
 * Exposing C code to the CIL universe
 
        The Mono runtime provides two mechanisms to expose C code to