Browse Source

fix a crash during the update call

Sven Czarnian 3 years ago
parent
commit
667829b03d
2 changed files with 16 additions and 3 deletions
  1. 2 3
      aman/AMAN.py
  2. 14 0
      aman/sys/Worker.py

+ 2 - 3
aman/AMAN.py

@@ -91,8 +91,7 @@ class AMAN:
         # find the correct worker for the inbound
         for worker in self.workers:
             if worker.icao == report.destination:
-                print('Updated ' + report.aircraft.callsign + ' for ' + worker.icao)
-                worker.acquire()
+                worker.acquireLock()
                 worker.reportQueue[report.aircraft.callsign] = report
-                worker.release()
+                worker.releaseLock()
                 break

+ 14 - 0
aman/sys/Worker.py

@@ -8,6 +8,12 @@ from aman.config.Airport import Airport
 class Worker(Thread):
     def __init__(self):
         Thread.__init__(self)
+        self.stopThread = None
+        self.icao = None
+        self.configuration = None
+        self.arrivalRoutes = None
+        self.updateLock = None
+        self.reportQueue = {}
 
     def __del__(self):
         self.release()
@@ -21,10 +27,18 @@ class Worker(Thread):
         self.reportQueue = {}
         self.start()
 
+    def acquireLock(self):
+        if None != self.updateLock:
+            self.updateLock.acquire()
+
     def release(self):
         self.stopThread = True
         self.join()
 
+    def releaseLock(self):
+        if None != self.updateLock:
+            self.updateLock.release()
+
     def run(self):
         counter = 0