remove acquire() and release() functions and run the threads as deamons for easier cleanups

This commit is contained in:
Sven Czarnian
2021-11-15 17:33:26 +01:00
parent 2d3384f0aa
commit e4ce4ff654
4 changed files with 16 additions and 106 deletions

View File

@@ -30,6 +30,7 @@ class AMAN:
def __init__(self):
# default initialization of members
configPath = AMAN.findConfigPath()
self.SystemConfig = None
self.AircraftPerformance = None
self.Receiver = None
@@ -37,15 +38,6 @@ class AMAN:
self.WebUi = None
self.Workers = []
# initialize the random number generator
random.seed(time.time())
def __del__(self):
self.release()
def aquire(self):
configPath = AMAN.findConfigPath()
# read all system relevant configuration files
self.SystemConfig = System(os.path.join(configPath, 'System.ini'))
print('Parsed System.ini')
@@ -58,13 +50,10 @@ class AMAN:
else:
print('Parsed PerformanceData.ini. Extracted ' + str(len(self.AircraftPerformance.Aircrafts)) + ' aircrafts')
self.Weather = Weather()
self.Weather.acquire(self.SystemConfig.Weather)
self.WebUi = WebUI()
self.WebUi.acquire(self.SystemConfig.Server, self)
# create the communication syb
self.Weather = Weather(self.SystemConfig.Weather)
self.Receiver = Euroscope(configPath, self.SystemConfig.Server, self)
# create the EuroScope receiver
self.Receiver = Euroscope()
# find the airport configurations and create the workers
airportsPath = os.path.join(os.path.join(configPath, 'airports'), '*.ini')
@@ -75,31 +64,13 @@ class AMAN:
airportConfig = Airport(file, icao)
# initialize the worker thread
worker = Worker()
worker.acquire(icao, airportConfig, self.Weather, self.AircraftPerformance, self.WebUi, self.Receiver)
worker = Worker(icao, airportConfig, self.Weather, self.AircraftPerformance, self.Receiver)
self.Workers.append(worker)
print('Started worker for ' + icao)
# initialize the receiver
self.Receiver.acquire(configPath, self.SystemConfig.Server, self)
def release(self):
if None != self.Workers:
for worker in self.Workers:
worker.release()
self.Workers = None
if None != self.Receiver:
self.Receiver.release()
self.Receiver = None
if None != self.Weather:
self.Weather.release()
self.Weather = None
if None != self.WebUi:
self.WebUi.release()
self.WebUi = None
def updateAircraftReport(self, report : AircraftReport_pb2.AircraftReport):
# find the correct worker for the inbound