summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2020-09-05 16:31:37 +0200
committerLuboš Luňák <l.lunak@collabora.com>2020-09-08 09:56:36 +0200
commite8eaf5e287efb304590b1821a2a738ddcdebe9fe (patch)
treee37d92c00bd1427e4bcf5e0d816f6ec4db8ebb5b /vcl
parentc2275ee554cae1cf4909a4fc12be4be127be011e (diff)
longer watchdog timeouts for debug Skia build
Skia runs internal checks, which occassionally actually may take a bit. Also abort() in dbgutil build already in case the watchdog disables Skia, to make finding these easier. Change-Id: I9ed09c57414e056de20a561b6945cba930edd37b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102096 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/skia/zone.cxx8
-rw-r--r--vcl/source/app/watchdog.cxx4
2 files changed, 12 insertions, 0 deletions
diff --git a/vcl/skia/zone.cxx b/vcl/skia/zone.cxx
index 0271608f5ba4..34e3f80f8b78 100644
--- a/vcl/skia/zone.cxx
+++ b/vcl/skia/zone.cxx
@@ -18,6 +18,8 @@
#include <vcl/skia/SkiaHelper.hxx>
+#include <config_skia.h>
+
/**
* Called from a signal handler or watchdog thread if we get
* a crash or hang in some driver.
@@ -59,7 +61,13 @@ const CrashWatchdogTimingsValues& SkiaZone::getCrashWatchdogTimingsValues()
{
case SkiaHelper::RenderVulkan:
{
+#if defined(SK_RELEASE)
static const CrashWatchdogTimingsValues vulkanValues = { 6, 20 }; /* 1.5s, 5s */
+#elif defined(SK_DEBUG)
+ static const CrashWatchdogTimingsValues vulkanValues = { 60, 200 }; /* 15s, 50s */
+#else
+#error Unknown Skia debug/release setting.
+#endif
return vulkanValues;
}
case SkiaHelper::RenderRaster:
diff --git a/vcl/source/app/watchdog.cxx b/vcl/source/app/watchdog.cxx
index f43f708b1eb4..b14611e227ca 100644
--- a/vcl/source/app/watchdog.cxx
+++ b/vcl/source/app/watchdog.cxx
@@ -57,8 +57,12 @@ template <typename Zone> struct WatchdogHelper
{
gbWatchdogFiring = true;
SAL_WARN("vcl.watchdog", "Watchdog triggered: hard disable " << Zone::name());
+#ifdef DBG_UTIL
+ std::abort();
+#else
Zone::hardDisable();
gbWatchdogFiring = false;
+#endif
}
bFired = true;