Fix cloning of inbox thread

master
Bob Mottram 2019-09-03 12:10:53 +01:00
parent d325501a31
commit 832c1cd39b
2 changed files with 7 additions and 5 deletions

View File

@ -1140,13 +1140,14 @@ def runInboxQueueWatchdog(projectVersion: str,httpd) -> None:
"""This tries to keep the inbox thread running even if it dies
"""
print('Starting inbox queue watchdog')
inboxQueueOriginal=httpd.thrInboxQueue.clone()
inboxQueueOriginal=httpd.thrInboxQueue.clone(runInboxQueue)
#httpd.thrInboxQueue=inboxQueueOriginal
httpd.thrInboxQueue.start()
while True:
time.sleep(20)
if not httpd.thrInboxQueue.isAlive():
httpd.thrInboxQueue.kill()
httpd.thrInboxQueue=inboxQueueOriginal.clone()
httpd.thrInboxQueue=inboxQueueOriginal.clone(runInboxQueue)
httpd.thrInboxQueue.start()
print('Restarting inbox queue...')

View File

@ -42,6 +42,7 @@ class threadWithTrace(threading.Thread):
def kill(self):
self.killed = True
def clone(self):
return threadWithTrace(target=self, \
args=(self._args),daemon=True)
def clone(self,fn):
return threadWithTrace(target=fn, \
args=self._args, \
daemon=True)