diff options
Diffstat (limited to 'docs/embedded-api')
-rw-r--r-- | docs/embedded-api | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/docs/embedded-api b/docs/embedded-api index 1fd739ae2ba..76f45f8be73 100644 --- a/docs/embedded-api +++ b/docs/embedded-api @@ -69,7 +69,16 @@ 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; @@ -112,6 +121,10 @@ 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 |