![]() At the end of HTML::EventLoop::process(), the loop reschedules itself if there are more runnable tasks available. However, the condition was flawed: we would reschedule if there were any microtasks queued, but those tasks will not be processed if we're currently within the scope of a microtask checkpoint. To fix this, we now only reschedule the HTML event loop for microtask processing *if* we're not already in a microtask checkpoint. This fixes the 100% CPU churn seen when looking at PRs on GitHub. :^) |
||
---|---|---|
.. | ||
EventLoop.cpp | ||
EventLoop.h | ||
Task.cpp | ||
Task.h | ||
TaskQueue.cpp | ||
TaskQueue.h |