From 67a06b3a7471856da19bb048474f19a33afae065 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Wed, 28 Aug 2019 14:28:12 -0700 Subject: [PATCH 1/2] Attempt to fix crash from script running too late --- libraries/script-engine/src/ScriptEngine.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 6808da2e1a..f60a71aec9 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -422,6 +422,12 @@ void ScriptEngine::waitTillDoneRunning() { if (isEvaluating()) { qCWarning(scriptengine) << "Script Engine has been running too long, aborting:" << getFilename(); abortEvaluation(); + } else { + qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); + auto context = currentContext(); + if (context) { + context->throwError("Timed out during shutdown"); + } } // Wait for the scripting thread to stop running, as From 437f6b40966066859ce72e442e48d9abaacfa0b7 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Wed, 28 Aug 2019 14:58:57 -0700 Subject: [PATCH 2/2] Only say we're throwing a script error when we mean it --- libraries/script-engine/src/ScriptEngine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index f60a71aec9..e679e9f6c5 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -423,9 +423,9 @@ void ScriptEngine::waitTillDoneRunning() { qCWarning(scriptengine) << "Script Engine has been running too long, aborting:" << getFilename(); abortEvaluation(); } else { - qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); auto context = currentContext(); if (context) { + qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); context->throwError("Timed out during shutdown"); } } @@ -450,9 +450,9 @@ void ScriptEngine::waitTillDoneRunning() { qCWarning(scriptengine) << "Script Engine has been running too long, aborting:" << getFilename(); abortEvaluation(); } else { - qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); auto context = currentContext(); if (context) { + qCWarning(scriptengine) << "Script Engine has been running too long, throwing:" << getFilename(); context->throwError("Timed out during shutdown"); } }