|
@@ -34,6 +34,10 @@ class AMAN:
|
|
|
self.workers = []
|
|
|
self.inbounds = {}
|
|
|
|
|
|
+ def __del__(self):
|
|
|
+ self.release()
|
|
|
+
|
|
|
+ def aquire(self):
|
|
|
configPath = AMAN.findConfigPath()
|
|
|
|
|
|
# read all system relevant configuration files
|
|
@@ -48,7 +52,8 @@ class AMAN:
|
|
|
else:
|
|
|
print('Parsed PerformanceData.ini. Extracted ' + str(len(self.aircraftPerformance.aircrafts)) + ' aircrafts')
|
|
|
|
|
|
- self.weather = Weather(self.systemConfig.Weather)
|
|
|
+ self.weather = Weather()
|
|
|
+ self.weather.acquire(self.systemConfig.Weather)
|
|
|
|
|
|
# find the airport configurations and create the workers
|
|
|
airportsPath = os.path.join(os.path.join(configPath, 'airports'), '*.ini')
|
|
@@ -59,24 +64,28 @@ class AMAN:
|
|
|
airportConfig = Airport(file, icao)
|
|
|
|
|
|
# initialize the worker thread
|
|
|
- worker = Worker(icao, airportConfig)
|
|
|
- worker.start()
|
|
|
+ worker = Worker()
|
|
|
+ worker.acquire(icao, airportConfig)
|
|
|
self.workers.append(worker)
|
|
|
print('Starter worker for ' + icao)
|
|
|
|
|
|
# create the EuroScope receiver
|
|
|
- self.receiver = Euroscope(configPath, self.systemConfig.Server, self)
|
|
|
+ self.receiver = Euroscope()
|
|
|
+ self.receiver.acquire(configPath, self.systemConfig.Server, self)
|
|
|
|
|
|
- def __del__(self):
|
|
|
+ def release(self):
|
|
|
if None != self.receiver:
|
|
|
- del self.receiver
|
|
|
+ self.receiver.release()
|
|
|
self.receiver = None
|
|
|
+
|
|
|
if None != self.weather:
|
|
|
- del self.weather
|
|
|
+ self.weather.release()
|
|
|
self.weather = None
|
|
|
|
|
|
- for worker in self.workers:
|
|
|
- worker.stop()
|
|
|
+ if None != self.workers:
|
|
|
+ for worker in self.workers:
|
|
|
+ worker.release()
|
|
|
+ self.workers = None
|
|
|
|
|
|
def updateAircraftReport(self, report : AircraftReport_pb2.AircraftReport):
|
|
|
# find the correct worker for the inbound
|