Hello,
How does socket() fail if you do not wrap the call with with_libc()? I'd expect the thread to open a socket_fs file and maybe block for the I/O operation to complete. Also, is there any reason to use a Genode::Thread which uses POSIX interfaces only (beside the admittedly more concise syntax compared to pthread_create())?
Basically if I do not use with_libc, the call to socket() will hang forever inside the first read() call to the socket file. 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?