Code cleanup, make sure race conditions can't happen, at least in theory.
This commit is contained in:
@ -73,17 +73,20 @@ class driver(speechDriver):
|
||||
return
|
||||
self.clear_buffer()
|
||||
self.lock.acquire(True)
|
||||
if self.proc:
|
||||
try:
|
||||
self.proc.terminate()
|
||||
except Exception as e:
|
||||
self.env['runtime']['debug'].writeDebugOut('speechDriver:Cancel:self.proc.terminate():' + str(e),debug.debugLevel.WARNING)
|
||||
try:
|
||||
if self.proc:
|
||||
try:
|
||||
self.proc.kill()
|
||||
self.proc.terminate()
|
||||
except Exception as e:
|
||||
self.env['runtime']['debug'].writeDebugOut('speechDriver:Cancel:self.proc.kill():' + str(e),debug.debugLevel.WARNING)
|
||||
self.proc = None
|
||||
self.lock.release()
|
||||
self.env['runtime']['debug'].writeDebugOut('speechDriver:Cancel:self.proc.terminate():' + str(e),debug.debugLevel.WARNING)
|
||||
try:
|
||||
self.proc.kill()
|
||||
except Exception as e:
|
||||
self.env['runtime']['debug'].writeDebugOut('speechDriver:Cancel:self.proc.kill():' + str(e),debug.debugLevel.WARNING)
|
||||
self.proc = None
|
||||
finally:
|
||||
# Ensure lock is always released, even if process termination fails
|
||||
self.lock.release()
|
||||
def setCallback(self, callback):
|
||||
print('SpeechDummyDriver: setCallback')
|
||||
|
||||
|
Reference in New Issue
Block a user