diff --git a/aman/AMAN.py b/aman/AMAN.py index f6a2786..dc760b5 100644 --- a/aman/AMAN.py +++ b/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 \ No newline at end of file diff --git a/aman/sys/Worker.py b/aman/sys/Worker.py index bf3ffce..97fb6ee 100644 --- a/aman/sys/Worker.py +++ b/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