[Mono-dev] Registering internal calls at runtime

Argiris Kirtzidis akyrtzi at gmail.com
Sat Dec 30 12:51:05 EST 2006


> AFAIK there is no way to do this after the class (or even the assembly?)
> with the corresponding internal call has been loaded by the runtime.

Before 'mono_jit_exec' I add an internal call 'do_icall_registration'. In 
the managed code, If I add the call 'do_icall_registration' to a static 
class constructor, the registration of new internal calls works fine.
If I add the call 'do_icall_registration' in the 'Main' method, registration 
of internal calls don't work.

>> Also, do internal calls offer significant performance benefits
>> against P/Invoke ?
>
> Yes, because no marshaling will be performed.

What if no expensive marshalling is required, for example if you have a 
native function that takes only an integer as a parameter. Are internal 
calls still faster ?


----- Original Message ----- 
From: "Robert Jordan" <robertj at gmx.net>
To: <mono-devel-list at lists.ximian.com>
Sent: Saturday, December 30, 2006 9:14 AM
Subject: Re: [Mono-dev] Registering internal calls at runtime


> Argiris Kirtzidis wrote:
>> Hi all,
>>
>> I'm using the Mono embedding API, and noticed that if I call
>> 'mono_add_internal_call' after the managed program started execution
>> (with 'mono_jit_exec'), the internal call doesn't get registered and
>> a MissingMethodException is thrown when the managed code tries to
>> call it.
>>
>> Is there a way to register new internal calls after the program
>> started execution ?
>
> AFAIK there is no way to do this after the class (or even the assembly?)
> with the corresponding internal call has been loaded by the runtime.
>
>>
>> Also, do internal calls offer significant performance benefits
>> against P/Invoke ?
>
> Yes, because no marshaling will be performed.
>
> Robert
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list 




More information about the Mono-devel-list mailing list