genode/base-linux/src/core
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
..
include Linux: Robustness of socket life-time management 2012-11-26 20:58:09 +01:00
context_area.cc Move context area definition to native_type 2012-09-24 09:17:54 +02:00
cpu_session_extension.cc Linux: cleanup system-call bindings 2012-11-05 17:31:04 +01:00
cpu_session_support.cc Extend RAM/CPU session for base-hw context-areas. 2012-08-02 16:41:21 +02:00
io_mem_session_component.cc Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
pd_session_component.cc base-linux: Support customization of UIDs and GIDs 2012-11-22 09:21:48 +01:00
platform_thread.cc Linux: Add 'Platform_thread' destructor 2012-11-05 17:31:05 +01:00
platform.cc Linux: Robustness of socket life-time management 2012-11-26 20:58:09 +01:00
ram_session_support.cc Linux: cleanup system-call bindings 2012-11-05 17:31:04 +01:00
rom_session_component.cc Linux: cleanup system-call bindings 2012-11-05 17:31:04 +01:00
target.mk Linux: cleanup system-call bindings 2012-11-05 17:31:04 +01:00
thread_linux.cc Linux: Robustness of socket life-time management 2012-11-26 20:58:09 +01:00