From f86fc845e79dc6bf97449f31f73f891eb4449b2b Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 13 Jun 2023 21:53:19 +0200 Subject: [PATCH] Update Timer.lua - Timer stop is using protected call now because it can crash the whole script. --- Moose Development/Moose/Core/Timer.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Core/Timer.lua b/Moose Development/Moose/Core/Timer.lua index 02e4cee63..86e53f819 100644 --- a/Moose Development/Moose/Core/Timer.lua +++ b/Moose Development/Moose/Core/Timer.lua @@ -107,7 +107,7 @@ _TIMERID=0 --- TIMER class version. -- @field #string version -TIMER.version="0.1.2" +TIMER.version="0.2.0" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO list @@ -222,7 +222,20 @@ function TIMER:Stop(Delay) -- Remove timer function. self:T(self.lid..string.format("Stopping timer by removing timer function after %d calls!", self.ncalls)) - timer.removeFunction(self.tid) + + -- We use a pcall here because if the DCS timer does not exist any more, it crashes the whole script! + local status=pcall( + function () + timer.removeFunction(self.tid) + end + ) + + -- Debug messages. + if status then + self:T2(self.lid..string.format("Stopped timer!")) + else + self:E(self.lid..string.format("WARNING: Could not remove timer function! isrunning=%s", tostring(self.isrunning))) + end -- Not running any more. self.isrunning=false