How do I get a component to wait for an RPC method to be called? Can I use a semaphore, or will that block RPC calls? Do I need a thread dedicated to handling RPC? If so, should I create a new Rpc_entrypoint and tell it to manage the Rpc_object?
Hi Ben,
The 'Genode' way would be not to block for RPC, but to only run the component during RPC or signal handling. If you need a component to execute between RPC calls then signal handlers would be the way to go. A private signal handler can perform the operations you need and block for RPC by returning from the signal handling function. If the execution should resume after RPC, send a signal to the local signal handler before finishing the RPC method.
Cheers, Emery
On Sat, 21 Apr 2018 22:13:33 -0600 Nobody III <hungryninja101@...9...> wrote:
How do I get a component to wait for an RPC method to be called? Can I use a semaphore, or will that block RPC calls? Do I need a thread dedicated to handling RPC? If so, should I create a new Rpc_entrypoint and tell it to manage the Rpc_object?
I'm not sure whether that will work for a library that needs a blocking function call to load an image by calling a child process. It seems like I'd need another thread, unless Genode has coroutine-like behavior with RPC calls.
On Sun, Apr 22, 2018, 1:03 AM Emery Hemingway <ehmry@...548...> wrote:
Hi Ben,
The 'Genode' way would be not to block for RPC, but to only run the component during RPC or signal handling. If you need a component to execute between RPC calls then signal handlers would be the way to go. A private signal handler can perform the operations you need and block for RPC by returning from the signal handling function. If the execution should resume after RPC, send a signal to the local signal handler before finishing the RPC method.
Cheers, Emery
On Sat, 21 Apr 2018 22:13:33 -0600 Nobody III <hungryninja101@...9...> wrote:
How do I get a component to wait for an RPC method to be called? Can I use a semaphore, or will that block RPC calls? Do I need a thread dedicated to handling RPC? If so, should I create a new Rpc_entrypoint and tell it to manage the Rpc_object?
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main