genode/repos/base/include
Norman Feske 49481dd3fb timer: restore semantics of periodic timeout 0
The 'Timer::Session::trigger_periodic' RPC function used to accept 0 as
a way to de-schedule the periodic processing. Several components such as
nitpicker relied on this special case. In "timeout: rework timeout
framework", the value of zero was silently clamped to 1, which has the
opposite effect: triggering signals at the maximum rate. This results in
a visible effect in Sculpt where the leitzentrale-nitpicker instance
produces a constant load of 2% CPU time.

This patch restores the original timer semantics by

- Documenting it in timer_session.h,

- Handling the case explicitly in the timer implementation, and

- Replacing the silent clamping of the unexpected value 0 passed
  to the timeout framework by a diagnostic error message.

Issue #3884
2021-04-20 12:03:03 +02:00
..
base libc: pthread TLS optimizations 2021-02-23 12:07:17 +01:00
cpu Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
cpu_session Remove Cpu_session::Native_cpu definition from API 2021-01-25 13:58:09 +01:00
cpu_thread base: remove deprecated cancel_blocking() support 2020-07-13 11:33:12 +02:00
dataspace Follow practices suggested by "Effective C++" 2018-01-17 12:14:35 +01:00
deprecated base: remove Cancelable_lock 2020-07-30 08:49:23 +02:00
drivers riscv: Use Qemu and update to ISA v1.10 2021-02-23 12:02:44 +01:00
io_mem_session Annotate io_mem session interface with RAM_QUOTA 2020-05-27 11:56:46 +02:00
io_port_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
irq_session Annotate irq session interface with RAM_QUOTA 2020-05-27 11:56:46 +02:00
log_session Remove return value of Log_session::write 2020-05-05 13:51:05 +02:00
parent base: mark Parent::Close_result with [[nodiscard]] 2020-01-03 14:44:15 +01:00
pd_session Remove Pd_session::Native_pd definition from API 2021-01-25 12:51:54 +01:00
region_map base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rm_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
rom_session base/os: remove deprecated APIs 2019-02-26 14:44:15 +01:00
root Replace Genode::strncpy by Genode::copy_cstring 2020-05-27 11:56:45 +02:00
session Streamline exception types 2017-05-31 13:16:07 +02:00
spec base: refactor VM/vCPU API 2021-02-23 12:07:18 +01:00
timer timeout: rework timeout framework 2020-10-09 13:35:56 +02:00
timer_session timer: restore semantics of periodic timeout 0 2021-04-20 12:03:03 +02:00
trace_session trace: extend for_each_subject_infos return value 2020-07-13 11:33:13 +02:00
util base: move Xml_generator::Node::Node behind ABI 2021-04-20 12:03:03 +02:00
vm_session base: refactor VM/vCPU API 2021-02-23 12:07:18 +01:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

This directory contains include files of interfaces that are exported
by components to be used by other components. Each subdirectory corresponds
to the component exporting the interface.