# HG changeset patch # User Edouard Tisserant # Date 1366337995 -32400 # Node ID a220a27defe581e4d897f0c673621ffde16057c6 # Parent 41bd726aa23cb48dbcab12eb0e7539c0b7dff982 Runtime now unloads and cleanup PLC before exit (created threads was preventing exit) diff -r 41bd726aa23c -r a220a27defe5 Beremiz_service.py --- a/Beremiz_service.py Fri Apr 19 01:44:25 2013 +0200 +++ b/Beremiz_service.py Fri Apr 19 11:19:55 2013 +0900 @@ -465,6 +465,8 @@ def Quit(self): self.continueloop = False + if self.plcobj is not None: + self.plcobj.UnLoadPLC() self.Stop() def Start(self): @@ -496,7 +498,8 @@ self.daemon.requestLoop() def Stop(self): - self.plcobj.StopPLC() + if self.plcobj is not None: + self.plcobj.StopPLC() if self.servicepublisher is not None: self.servicepublisher.UnRegisterService() self.servicepublisher = None diff -r 41bd726aa23c -r a220a27defe5 runtime/PLCObject.py --- a/runtime/PLCObject.py Fri Apr 19 01:44:25 2013 +0200 +++ b/runtime/PLCObject.py Fri Apr 19 11:19:55 2013 +0900 @@ -205,6 +205,10 @@ PLCprint(self._loading_error) return False + def UnLoadPLC(self): + self.PythonRuntimeCleanup() + self._FreePLC() + def _FreePLC(self): """ Unload PLC library. @@ -363,9 +367,8 @@ NewFileName = md5sum + lib_ext extra_files_log = os.path.join(self.workingdir,"extra_files.txt") - self.PythonRuntimeCleanup() - - self._FreePLC() + self.UnLoadPLC() + self.LogMessage("NewPLC (%s)"%md5sum) self.PLCStatus = "Empty"