mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-06 09:01:53 +00:00
LibWeb: Don't take rendering task from queue while running rendering
If event loop is already executing rendering task, we should not start the next rendering task until the current one is finished. Fixes https://github.com/LadybirdBrowser/ladybird/issues/3717
This commit is contained in:
parent
b8af3fccf6
commit
4ca330adef
Notes:
github-actions[bot]
2025-02-27 16:34:31 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: 4ca330adef
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3721
Reviewed-by: https://github.com/awesomekling ✅
3 changed files with 11 additions and 5 deletions
|
@ -38,6 +38,8 @@ GC::Ptr<Task> TaskQueue::take_first_runnable()
|
|||
return nullptr;
|
||||
|
||||
for (size_t i = 0; i < m_tasks.size(); ++i) {
|
||||
if (m_event_loop->running_rendering_task() && m_tasks[i]->source() == Task::Source::Rendering)
|
||||
continue;
|
||||
if (m_tasks[i]->is_runnable())
|
||||
return m_tasks.take(i);
|
||||
}
|
||||
|
@ -50,6 +52,8 @@ bool TaskQueue::has_runnable_tasks() const
|
|||
return false;
|
||||
|
||||
for (auto& task : m_tasks) {
|
||||
if (m_event_loop->running_rendering_task() && task->source() == Task::Source::Rendering)
|
||||
continue;
|
||||
if (task->is_runnable())
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue