From 7b5ffe77d51effc70b5291c7ef02472a91e0df6b Mon Sep 17 00:00:00 2001
From: Torben Petersen <petersen@ibr.cs.tu-bs.de>
Date: Wed, 28 Jul 2021 12:57:25 +0200
Subject: [PATCH] Adds Mutex to prevent logger from printing into multiple
 files at the same time!

---
 software/coordinator2.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/software/coordinator2.py b/software/coordinator2.py
index 4181e59..aa46997 100644
--- a/software/coordinator2.py
+++ b/software/coordinator2.py
@@ -174,6 +174,8 @@ class PRREvalClient(Thread):
 
         self.connected = 0
 
+        self.log_mutex = Lock()
+
         self.server_one = "pi-a279"
         self.HUB_ONE_DISCOVERY_TOPIC = "hotplug/{}/discovery".format(self.server_one)
         self.HUB_ONE_DISCOVERY_ANSWER_TOPIC = "hotplug/{}/discovery/answer".format(self.server_one)
@@ -247,6 +249,8 @@ class PRREvalClient(Thread):
                 os.mkdir("Node-Logs/{}".format(userdata))
             unpacked_msg = str(msg.payload)[2:][:-1]
             node_id = topic[2]
+
+            self.log_mutex.acquire()
             
             fh = logging.FileHandler("Node-Logs/{}/{}.log".format(userdata, node_id))
             fh.setLevel(logging.DEBUG)
@@ -254,8 +258,9 @@ class PRREvalClient(Thread):
 
             self.logger.addHandler(fh)
             self.logger.info("{}\t{}: {}".format(time(), node_id, unpacked_msg))
-
             self.logger.removeHandler(fh)
+
+            self.log_mutex.release()
         else:
             print( "[on_message] {} {}".format(msg.payload, msg.topic) )
 
-- 
GitLab