#!/usr/bin/env python from threading import Thread, Lock import time 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() def acquire(self, icao : str, configuration : Airport): self.stopThread = None self.icao = icao self.configuration = configuration self.arrivalRoutes = configuration.gngData.arrivalRoutes self.updateLock = Lock() 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 while None == self.stopThread: time.sleep(1) counter += 1 if 0 != (counter % 60): continue # TODO handle the report queue and update internal information # TODO execute planning, etc. continue