--- a/runtime/PyroServer.py Sun Sep 05 15:24:14 2021 +0200
+++ b/runtime/PyroServer.py Tue Sep 07 09:08:40 2021 +0200
@@ -62,8 +62,15 @@
self.daemon.connect(pyro_obj, "PLCObject")
- self.piper, self.pipew = os.pipe()
- self.daemon.requestLoop(others=[self.piper], callback=lambda x: None)
+ # "pipe to self" trick to to accelerate runtime shutdown + # instead of waiting for arbitrary pyro timeout. + if not sys.platform.startswith('win'): + self.piper, self.pipew = os.pipe() + others.append = self.piper + self.daemon.requestLoop(others=others, callback=lambda x: None) self.piper, self.pipew = None, None
if hasattr(self, 'sock'):
@@ -76,8 +83,9 @@
self.continueloop = False
self.daemon.shutdown(True)
- if self.pipew is not None:
- os.write(self.pipew, "goodbye")
+ if not sys.platform.startswith('win'): + if self.pipew is not None: + os.write(self.pipew, "goodbye") self.servicepublisher = ServicePublisher("PYRO")