diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-09-16 19:17:31 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-09-24 14:12:58 +0200 |
commit | d0bd1880f4edf6b5a1657e675aa10a6418003d99 (patch) | |
tree | f87a18f808620ded18dd08a02b909a7e241214d8 /vcl/inc | |
parent | d4f871a859d969172bd1f8959e86f40993664ad5 (diff) |
Scheduler: add per-priority Task lists
This way we don't have to search the whole list for a higher
priority event, if an immediate Task is found. This probably
helps bugs like tdf#119724 and tdf#119428.
Change-Id: Ic5685193d1bedb6996cf46f0ee2cba42190ff7cc
Reviewed-on: https://gerrit.libreoffice.org/60572
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/svdata.hxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 6ef279586ea1..6df874abc74b 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -26,6 +26,7 @@ #include <unotools/options.hxx> #include <vcl/svapp.hxx> #include <vcl/window.hxx> +#include <vcl/task.hxx> #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/i18n/XCharacterClassification.hpp> @@ -327,9 +328,10 @@ struct BlendFrameCache struct ImplSchedulerContext { - ImplSchedulerData* mpFirstSchedulerData = nullptr; ///< list of all active tasks - ImplSchedulerData* mpLastSchedulerData = nullptr; ///< last item of the mpFirstSchedulerData list + ImplSchedulerData* mpFirstSchedulerData[PRIO_COUNT] = { nullptr, }; ///< list of all active tasks per priority + ImplSchedulerData* mpLastSchedulerData[PRIO_COUNT] = { nullptr, }; ///< last item of each mpFirstSchedulerData list ImplSchedulerData* mpSchedulerStack = nullptr; ///< stack of invoked tasks + ImplSchedulerData* mpSchedulerStackTop = nullptr; ///< top most stack entry to detect needed rescheduling during pop SalTimer* mpSalTimer = nullptr; ///< interface to sal event loop / system timer sal_uInt64 mnTimerStart = 0; ///< start time of the timer sal_uInt64 mnTimerPeriod = SAL_MAX_UINT64; ///< current timer period |