summaryrefslogtreecommitdiff
path: root/vcl/inc/svdata.hxx
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2017-07-27 11:42:31 +0200
committerJan-Marek Glogowski <glogow@fbihome.de>2017-08-04 13:38:20 +0200
commitd55aabfd44563027aceffd0020f55b166184a0ca (patch)
tree9073855842a11796e8ea8434896eedd7b7b10747 /vcl/inc/svdata.hxx
parent3dd30f7ec568852ffd95932b486d0a09a2021d71 (diff)
Implement VCL Scheduler locking
Replces the SolarMutex scheduler locking by using a distinct mutex included in the scheduler context. It should also get rid of the spurious assert( !bAniIdle ) failures, as the test now holds the Scheduler lock for the whole time. This includes reverting the additional scheduler de-init from commit 2e29a518b04250b5f9cc9d0d77da3df076834d60, as I couldn't reproduce the bug running the unit test in valgrind. Change-Id: If33f815fe86c8f82175e96adceb1084b925319dd Reviewed-on: https://gerrit.libreoffice.org/40497 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'vcl/inc/svdata.hxx')
-rw-r--r--vcl/inc/svdata.hxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 3501d2c25d45..a633798d54ad 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -38,6 +38,7 @@
#include <unordered_map>
#include <boost/functional/hash.hpp>
#include "ControlCacheKey.hxx"
+#include "schedulerimpl.hxx"
struct ImplPostEventData;
struct ImplTimerData;
@@ -46,7 +47,6 @@ struct ImplConfigData;
class ImplDirectFontSubstitution;
struct ImplHotKey;
struct ImplEventHook;
-struct ImplSchedulerData;
class Point;
class ImplAccelManager;
class PhysicalFontCollection;
@@ -324,6 +324,8 @@ struct ImplSchedulerContext
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
+ SchedulerMutex maMutex; ///< lock counting mutex for scheduler locking
+ bool mbActive = true; ///< is the scheduler active?
};
struct ImplSVData