genode/base-linux
Norman Feske 91e6ab2baf Linux: Robustness of socket life-time management
This patch improves the life-time management of socket descriptors and
addresses several corner cases exposed by the 'bomb' test.

The lookup and association of file descriptors with global IDs have been
turned into an atomic operation. Otherwise, multiple threads interacting
with the singleton 'ep_sd_registry' may override each other's
associations.

Closing the socket pair used for the reply channel has been implemented
via the RAII pattern to capture all corner cases, in particular
exceptions.

If blocking operations are interrupted by signals, we throw a
'Blocking_canceled' exception.

We preserve core's socket descriptor at 'PARENT_SOCKET_HANDLE' to avoid
a corner case where the parent capability is going to dup2'ed to the
same handle.

Support for 'Thread_base::join' within core to enable leaving Genode via
Control-C.
2012-11-26 20:58:09 +01:00
..
etc Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
include cpu_session: Access thread state by value 2012-11-23 12:20:22 +01:00
lib Linux: Build hybrid library with Genode tool chain 2012-11-05 17:31:05 +01:00
mk Hardening compilation support for 64bit Linux 2012-06-21 00:50:18 +02:00
run Improve robustness of chroot-related tests 2012-11-23 12:20:27 +01:00
src Linux: Robustness of socket life-time management 2012-11-26 20:58:09 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00

This repository contains the Linux-specific implementation of Genode.