mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
Implement event loop timers.
GObjects can now register a timer with the GEventLoop. This will eventually cause GTimerEvents to be dispatched to the GObject. This needed a few supporting changes in the kernel: - The PIT now ticks 1000 times/sec. - select() now supports an arbitrary timeout. - gettimeofday() now returns something in the tv_usec field. With these changes, the clock window in guitest2 finally ticks on its own.
This commit is contained in:
parent
9153666e72
commit
95c3442d59
10 changed files with 140 additions and 7 deletions
|
@ -131,7 +131,12 @@ private:
|
|||
|
||||
class GTimerEvent final : public GEvent {
|
||||
public:
|
||||
GTimerEvent() : GEvent(GEvent::Timer) { }
|
||||
explicit GTimerEvent(int timer_id) : GEvent(GEvent::Timer), m_timer_id(timer_id) { }
|
||||
~GTimerEvent() { }
|
||||
|
||||
int timer_id() const { return m_timer_id; }
|
||||
|
||||
private:
|
||||
int m_timer_id;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue