From 41a09c4f1707ffddcd5d4ed637f8285886606ebf Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Fri, 1 Dec 2023 15:58:28 +0100 Subject: [PATCH] fix: Context manager crashes in monitoring mode The context managers tried to write to the process image in monitoring=True mode. This is not allowed and the application crashed with an error. Signed-off-by: Sven Sager --- src/revpimodio2/io.py | 3 ++- src/revpimodio2/modio.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/revpimodio2/io.py b/src/revpimodio2/io.py index 10ae93e..5aa46b8 100644 --- a/src/revpimodio2/io.py +++ b/src/revpimodio2/io.py @@ -115,7 +115,8 @@ class IOList(object): self.__modio._imgwriter.newdata.clear() # Write outputs on devices without autorefresh - self.__modio.writeprocimg() + if not self.__modio._monitoring: + self.__modio.writeprocimg() if self.__modio._imgwriter.is_alive(): # Wait until imgwriter has written outputs diff --git a/src/revpimodio2/modio.py b/src/revpimodio2/modio.py index ff37f3a..cde5e22 100644 --- a/src/revpimodio2/modio.py +++ b/src/revpimodio2/modio.py @@ -218,7 +218,8 @@ class RevPiModIO(object): return self def __exit__(self, exc_type, exc_val, exc_tb): - self.writeprocimg() + if not self._monitoring: + self.writeprocimg() self.exit(full=True) self._looprunning = False self._context_manager = False