mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-23 09:15:36 +00:00
timeout: rework timeout framework
* get rid of alarm abstraction * get rid of Timeout::Time type * get rid of pointer arguments * get rid of _discard_timeout indirection * get rid of 65th bit in stored time values * get rid of Timeout_scheduler interface * get rid of uninitialized deadlines * get rid of default arguments * get rid of Timeout::_periodic * get rid of Timeout::Raw * use list abstraction * only one interface for timeout handlers * rework locking scheme to be smp safe * move all method definitions to CC file * name mutexes more accurate * fix when & how to set time-source timeout * fix deadlocks Fixes #3884
This commit is contained in:
committed by
Christian Helmuth
parent
9e5d479d03
commit
7feea78991
@ -17,8 +17,8 @@
|
||||
using namespace Genode;
|
||||
|
||||
|
||||
void Timer::Time_source::schedule_timeout(Genode::Microseconds duration,
|
||||
Timeout_handler &handler)
|
||||
void Timer::Time_source::set_timeout(Genode::Microseconds duration,
|
||||
Timeout_handler &handler)
|
||||
{
|
||||
_handler = &handler;
|
||||
|
||||
|
@ -68,8 +68,8 @@ class Timer::Time_source : private Genode::Attached_mmio,
|
||||
*************************/
|
||||
|
||||
Genode::Duration curr_time() override;
|
||||
void schedule_timeout(Genode::Microseconds duration,
|
||||
Timeout_handler &handler) override;
|
||||
void set_timeout(Genode::Microseconds duration,
|
||||
Genode::Timeout_handler &handler) override;
|
||||
Genode::Microseconds max_timeout() const override;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user