genode/repos/base/include/base
Norman Feske 6f1d3862cd base: introduce Env::try_session
The new 'Env::try_session' method mirrors the existing 'Env::session'
without implicitly handling exceptions of the types 'Out_of_ram',
'Out_of_caps', 'Insufficient_ram_quota', and 'Insufficient_cap_quota'.
It enables runtime environments like init to reflect those exceptions to
their children instead of paying the costs of implicit session-quota
upgrades out of the own pocket.

By changing the 'Parent_service' to use 'try_session', this patch fixes
a resource-exhaustion problem of init in Sculpt OS that occurred when
the GPU multiplexer created a large batch of IO_MEM sessions, with each
session requiring a second attempt with the session quota upgraded by
4 KiB.

Issue #3767
2021-10-14 11:02:12 +02:00
..
trace trace: redirect logs to trace based on policy 2020-04-17 12:47:48 +02:00
affinity.h base: make Affinity::Space::location_of_index const 2020-11-27 09:19:09 +01:00
allocator_avl.h base: Refine Range_allocator::alloc_aligned 2021-04-20 12:03:04 +02:00
allocator.h base: Refine Range_allocator::alloc_aligned 2021-04-20 12:03:04 +02:00
attached_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_io_mem_dataspace.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
attached_ram_dataspace.h base/cache.h: rename Cache_attribute to Cache 2021-04-20 12:10:31 +02:00
attached_rom_dataspace.h Never throw in 'Attached_rom_dataspace::size' 2020-02-04 15:51:10 +01:00
blockade.h doc: tweaks for updated Genode Foundations book 2020-05-27 11:56:46 +02:00
blocking.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
buffered_output.h base/buffered_output.h: flush at destruction time 2020-02-20 12:08:16 +01:00
cache.h base/cache.h: rename Cache_attribute to Cache 2021-04-20 12:10:31 +02:00
capability.h Cleanup Call_return encapsulation in call() 2017-05-02 15:28:52 +02:00
child.h Propagate session diag flag to core 2020-12-09 14:02:11 +01:00
component.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
connection.h Remove Allocator_guard 2020-05-18 10:16:12 +02:00
console.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
debug.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
duration.h timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
entrypoint.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
env.h base: introduce Env::try_session 2021-10-14 11:02:12 +02:00
exception.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
heap.h base: use mutex in heap 2020-02-20 12:11:22 +01:00
id_space.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
ipc_msgbuf.h base: avoid null pointer reference warning 2019-01-07 12:25:45 +01:00
ipc.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
local_connection.h Propagate session diag flag to core 2020-12-09 14:02:11 +01:00
lock_guard.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
lock.h base: remove Cancelable_lock 2020-07-30 08:49:23 +02:00
log.h Debug macros for easy performance profiling 2021-04-20 12:03:03 +02:00
mutex.h base: remove Cancelable_lock 2020-07-30 08:49:23 +02:00
native_capability.h core: avoid null pointer reference warning 2019-01-07 12:25:44 +01:00
object_pool.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
output.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
quota_guard.h Remove replenish error message from quota guard 2018-02-28 11:05:04 +01:00
quota_transfer.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
ram_allocator.h base/cache.h: rename Cache_attribute to Cache 2021-04-20 12:10:31 +02:00
registry.h base/registry.h: remove misleading comment 2020-04-17 12:40:13 +02:00
rpc_args.h base: explicit copy constructor for Rpc_in_buffer 2020-11-23 12:02:58 +01:00
rpc_client.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rpc_server.h base: Silence unused arg warning in rpc_server.h 2020-11-27 09:19:08 +01:00
rpc.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
semaphore.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
service.h base: introduce Env::try_session 2021-10-14 11:02:12 +02:00
session_label.h base: add copy constructor to 'Genode::Session_label' 2019-05-27 14:46:54 +02:00
session_object.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
session_state.h Propagate session diag flag to core 2020-12-09 14:02:11 +01:00
shared_object.h ldso: Dynamic_linker::respawn mechanism 2019-08-28 14:18:45 +02:00
signal.h base: support process-local signal submission 2020-11-23 12:02:53 +01:00
slab.h slab: add option to free empty blocks 2021-02-23 12:02:44 +01:00
sleep.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
snprintf.h Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
stdint.h Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
synced_allocator.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
synced_interface.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00
thread_state.h base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
thread.h libc: pthread TLS optimizations 2021-02-23 12:07:17 +01:00
tslab.h base: construct 'Tslab' with allocator reference 2017-05-31 13:16:03 +02:00
weak_ptr.h base: use Mutex/Blockade 2020-04-17 12:40:12 +02:00