Hi Alexander,
On 05/20/2011 11:56 AM, Kiba Alexandra wrote:
I'm trying to clear up how Genode service works. As I understand from hello_tutorial description on genode.org http://genode.org there is a magic "Server_entrypoint" object for serving sessions. But I noticed this object being used by Genode::Child too. What's the main idea of entrypoint object in Child class?
a 'Server_entrypoint' is always needed if a process wants to dispatch RPC calls. Obviously this is the case for a server. But this also applies for each parent process. Such a process provides the 'Parent' interface (see: 'base/include/parent/parent.h') to each of its children. The 'Child' class implements this interface on the parent side. In the simplest case, this entrypoint is only used to dispatch RPC calls to the parent interface but in other cases, the parent may also provide locally implemented services via the same entrypoint. Please note that each child process has a dedicated entrypoint in the parent. So concurrent (possibly blocking) invokations of the parent interface by multiple children do not interfere.
Regards Norman