RLP vs RLP light

Hi,

i wrote code using RLP light, and now saw the RLP.

i saw a list of differences between RLP and RLP light:
• Dynamic parsing and loading of ELF files
• Dynamic procedure allocation
• Dynamic argument allocation
• RLP extensions (memory allocation, NETMF derives access)
• RLP tasks, a real-time option for NETMF
• RLP can raise events back to the C# managed system
• C-runtime system initialization

my question is: “RLP can raise events back to the C# managed system”? how can i raise event to C# (without return from C code…)? i thought that NETMF stops when RLP run…

events do not run immediately, not through RLP and through interops. In fact there is a hidden C# thread the checks for events and raise them

and this thread raises the events just after C code return, am i right?

not “just after” but sometimes after…NETMF is not real time.

Unfortunately I do not think this will not work because while the RLP method is running the VM execution engine blocked waiting for the RLP function to return. So the event handler will not be executed until after the RLP method returns and the VM is back in control of code execution. I have not looked at this area of the code in depth, but from what I have seen, this is my understanding.

@ andre.marschalek - That is correct, managed code execution is stopped completely while native code executes. Threads only manifest in the managed code, so only the managed portions of the code can run in separate threads, the native code is all single threaded.

RLP Tasks do not execute in parallel to managed or native code.

RLP Tasks are scheduled to execute, but when they execute all other execution is halted until the task completes. So this is like taking your function an breaking it into many small native function calls to do the job in pieces, but if a task execution takes 10 seconds to execute then the system is blocked for 10 seconds.

1 Like