[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