genode/repos/base/src/include/base/internal
Norman Feske e0e9b3b32e init: close all sessions of exited children
With this patch, init responds to the exit of a child by closing all
sessions of the child. E.g., if a child is a GUI application, its
nitpicker session is closed at the time of exit, not at the time when
the start node disappears from init's configuration.

Since this change requires a modification of the 'Genode::Child' class,
it takes the chance to make the child-destruction less brutal. The
new version ensures that all threads of the destructed subsystem are
destructed before other sessions, in particular PD sessions. This
eliminates spurious page-fault warnings during the child destruction.

On Fiasco.OC, closing the CPU session of a thread while being called by
the thread causes a deadlock. Hence, we skip the eager destruction of
CPU sessions on this kernel.

Related to issue #2659
2018-02-09 13:31:27 +01:00
..
attached_stack_area.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
capability_data.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
capability_space_tpl.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
capability_space.h core: add Platform::max_caps() 2017-05-31 13:16:03 +02:00
child_policy.h init: close all sessions of exited children 2018-02-09 13:31:27 +01:00
crt0.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
elf_format.h base: update include guards 2016-03-07 12:34:45 +01:00
elf.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
expanding_cpu_session_client.h Streamline exception types 2017-05-31 13:16:07 +02:00
expanding_parent_client.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
expanding_pd_session_client.h Integrate core's RAM service into the PD service 2017-05-31 13:16:14 +02:00
expanding_region_map_client.h Streamline exception types 2017-05-31 13:16:07 +02:00
globals.h ldso/cxx: show symbols names of undefined references 2017-08-18 10:24:48 +02:00
ipc_server.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
output.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
page_size.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
parent_cap.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
platform_env.h base: setup parent upgrade mechanism eagerly 2017-06-19 12:35:55 +02:00
rpc_obj_key.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
spin_lock.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
stack_allocator.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
stack_area.h base: make stack area base specifiable for core 2017-08-28 16:49:46 +02:00
stack.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
trace_control.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
unmanaged_singleton.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
upgradeable_client.h Capability quota accounting and trading 2017-05-31 13:16:06 +02:00