summaryrefslogtreecommitdiff
path: root/vcl/opengl
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2019-03-13 01:23:36 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2019-03-14 12:34:32 +0100
commitffcff2fe24ce1fd64b7c45073c09f6d5a5a5d51d (patch)
tree53cef736da5e1830f6207495ec6ead3e5ec17720 /vcl/opengl
parent8bc23968129fc38d70fb614668a411599d4e6d0e (diff)
Fix scheduled Task priority change handling
If a task is still in the scheduler priority queue and its priority is changed, it won't be moved into the correct queue. We have to track the priority of the scheduled task, so we can warn the developer to fix the code and actually handle re-start correctly. Since we don't want to traverse the whole Scheduler queues on priority change (which sometimes get very long) to remove the wrong data item, we'll just invalidate it, if a priority change is detected. This also reverts commit d24b264c4a47 ("vcl opengl: avoid task priority warning on cursor blink"), which tried to avoid the warning, which was just half right and independent of the broken priority change handling. LO doesn't change priorities of scheduled tasks normally, so that bug didn't turn out to have much impact, I guess. Change-Id: I6e46b518a7c3532047c619c013bd8597f73ed7a6 Reviewed-on: https://gerrit.libreoffice.org/69249 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'vcl/opengl')
-rw-r--r--vcl/opengl/gdiimpl.cxx3
1 files changed, 1 insertions, 2 deletions
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index caecec0d4621..90922d737eb3 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -63,9 +63,8 @@ public:
virtual void Invoke() override
{
m_pImpl->doFlush();
- if (GetPriority() != TaskPriority::HIGHEST)
- SetPriority(TaskPriority::HIGHEST);
Stop();
+ SetPriority(TaskPriority::HIGHEST);
}
};