The entrypoint creates the root component, spawns the thread and
returns. It will then handle RPC requests, as entrypoints do IIRC.

The program acts as a server (serving Nic sessions asynchronously) and
as a client to lxip vfs with libc. the code can be found in [1].

How can I have the entrypoint handle I/O signals in libc while also
being able to serve clients in Genode?


[1]
https://github.com/genodelabs/genode/blob/master/repos/ports/src/app/openvpn/main.cc

On 23-06-17 15:28, Christian Helmuth wrote:
> Hey,
>
> On Fri, Jun 23, 2017 at 03:21:28PM +0200, Boris Mulder wrote:
>> Basically if I do not use with_libc, the call to socket() will hang
>> forever inside the first read() call to the socket file.
> So, which code does your initial entrypoint execute? As I wrote
> before, the initial entrypoint is responsible for completing the I/O
> operations in Libc components. In other words, if the initial
> entrypoint does not block and then handle libc I/O signals, other
> threads blocked in the libc will never resume.
>
>> The reason I used a Genode::Thread was because openvpn already did
>> that. Do you think using a pthread might be better in this case?
> No, I was just curios ;-)
>
> Grets

-- 

Met vriendelijke groet / kind regards,

Boris Mulder

Cyber Security Labs B.V. | Gooimeer 6-31 | 1411 DD Naarden | The Netherlands
+31 35 631 3253 (office)



------------------------------------------------------------------------------
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

Reply via email to