Hello Genodians We have ported google protocol buffers and the Google RPC (grpc) to genode and would like to contribute that to genode world.
We encountered a problem with the port in which grpc server deadlocks when using the poll function of libc to poll sockets via the lwip or lxip plugin. We determined that poll calls Libc::suspend in task.cc which in term calls Pthreads::suspend_myself where the deadlock oocurs at myself.lock.lock();. Note that the grpc server uses several threads which apparantly are all waiting/suspended when the problem occurred. You can check out or working branch at https://github.com/trimpim/genode-world/commit/18da8122f805de0a137b778a6d83ca05127fe3bc and execute scenario using run/grpc runscript reproduce the problem. Does anyone has any idea why a deadlock might occur in that situation? Kind regards Stefan -- Freundliche Grüsse Stefan Thöni Chairman of the Board Senior Security Architect +41 79 610 64 95 gapfruit AG Baarerstrasse 135 6300 Zug https://gapfruit.com
0x05D66A288F9939FF.asc
Description: application/pgp-keys
<<attachment: stefan_thoeni.vcf>>
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Genode users mailing list [email protected] https://lists.genode.org/listinfo/users
