mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
This introduces a new TimeoutSet class for use in EventLoopImplementationUnix. It is responsible for finding a timer that expires the soonest and for firing expired timers. TimeoutSet expects timeouts to be subclasses of EventLoopTimeout, of which EventLoopTimer is now a subclass, obviously. TimeoutSet stores timeouts in a binary heap, so EventLoopImplementationUnix should handle large amounts of timers a lot better now. TimeoutSet also supports scheduling of timeouts whose fire time is relative to the start of the next event loop iteration (i. e. ones that directly bound polling time). This functionality will reveal its full potential later with the implementation of asynchronous sockets but it is currently used to implement zero-timeout timers that are an analog of Core::deferred_invoke with slightly different semantics.
22 KiB
22 KiB