3049c1004c
The 'Timer::Session::msleep' function is one of the last occurrences of long-blocking RPC calls. Synchronous blocking RPC interfaces turned out to be constant source of trouble and code complexity. I.e., a timer client that also wants to respond to non-timer events was forced to be a multi-threaded process. This patch replaces the blocking 'msleep' call by a mechanism for programming timeouts and receiving wakeup signals in an asynchronous fashion. Thereby signals originating from the timer can be handled along with signals from other signal sources by a single thread. The changed interface has been tested on Linux, L4/Fiasco, OKL4, NOVA, L4ka::Pistachio, Codezero, Fiasco.OC, and hw_pbxa9. Furthermore, this patch adds the timer test to autopilot. Fixes #1 |
||
---|---|---|
.. | ||
alarm | ||
audio_out | ||
block | ||
bomb | ||
chroot_loader | ||
config_args | ||
dde_kit | ||
dynamic_config | ||
failsafe | ||
fb_block_adapter | ||
framebuffer | ||
gpio_drv | ||
input | ||
iso | ||
loader | ||
nic_loopback | ||
nitpicker | ||
packet_stream | ||
part_blk | ||
pci | ||
ram_fs_chunk | ||
rom_blk | ||
signal | ||
terminal_crosslink | ||
terminal_echo | ||
thread_join | ||
timed_semaphore | ||
timer | ||
timer_accuracy | ||
uart | ||
xev_track |