summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/skia/zone.hxx3
-rw-r--r--vcl/skia/README9
2 files changed, 12 insertions, 0 deletions
diff --git a/vcl/inc/skia/zone.hxx b/vcl/inc/skia/zone.hxx
index 1f6bbb0dddca..6d503e7eb803 100644
--- a/vcl/inc/skia/zone.hxx
+++ b/vcl/inc/skia/zone.hxx
@@ -14,10 +14,13 @@
#include <vcl/dllapi.h>
+#include <comphelper/solarmutex.hxx>
+
// Used around calls to Skia code to detect crashes in drivers.
class VCL_DLLPUBLIC SkiaZone : public CrashZone<SkiaZone>
{
public:
+ SkiaZone() { assert(comphelper::SolarMutex::get()->IsCurrentThread()); }
static void hardDisable();
static void relaxWatchdogTimings();
static const CrashWatchdogTimingsValues& getCrashWatchdogTimingsValues();
diff --git a/vcl/skia/README b/vcl/skia/README
index f178ef8f3b76..c508beb33cea 100644
--- a/vcl/skia/README
+++ b/vcl/skia/README
@@ -59,6 +59,15 @@ You can also use 'visualbackendtest' to visually check some operations. Use some
SAL_SKIA=raster SAL_ENABLESKIA=1 SAL_USE_VCLPLUGIN=gen [srcdir]/bin/run visualbackendtest
+Thread safety:
+==============
+
+SolarMutex must be held for most operations (asserted in SkiaSalGraphicsImpl::preDraw() and
+in SkiaZone constructor). The reason for this is that this restriction does not appear to be
+a problem, so there's no need to verify thread safety of the code (including the Skia library).
+There's probably no fundamental reason why the code couldn't be made thread-safe.
+
+
GrDirectContext sharing:
========================