fix a crash during the update call
This commit is contained in:
@@ -91,8 +91,7 @@ class AMAN:
|
|||||||
# find the correct worker for the inbound
|
# find the correct worker for the inbound
|
||||||
for worker in self.workers:
|
for worker in self.workers:
|
||||||
if worker.icao == report.destination:
|
if worker.icao == report.destination:
|
||||||
print('Updated ' + report.aircraft.callsign + ' for ' + worker.icao)
|
worker.acquireLock()
|
||||||
worker.acquire()
|
|
||||||
worker.reportQueue[report.aircraft.callsign] = report
|
worker.reportQueue[report.aircraft.callsign] = report
|
||||||
worker.release()
|
worker.releaseLock()
|
||||||
break
|
break
|
||||||
@@ -8,6 +8,12 @@ from aman.config.Airport import Airport
|
|||||||
class Worker(Thread):
|
class Worker(Thread):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Thread.__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):
|
def __del__(self):
|
||||||
self.release()
|
self.release()
|
||||||
@@ -21,10 +27,18 @@ class Worker(Thread):
|
|||||||
self.reportQueue = {}
|
self.reportQueue = {}
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
|
def acquireLock(self):
|
||||||
|
if None != self.updateLock:
|
||||||
|
self.updateLock.acquire()
|
||||||
|
|
||||||
def release(self):
|
def release(self):
|
||||||
self.stopThread = True
|
self.stopThread = True
|
||||||
self.join()
|
self.join()
|
||||||
|
|
||||||
|
def releaseLock(self):
|
||||||
|
if None != self.updateLock:
|
||||||
|
self.updateLock.release()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
counter = 0
|
counter = 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user