@@ -521,7 +521,6 @@ class QemuRunner:
except Exception as e:
self.logger.warning('Extra log data exception %s' % repr(e))
data = None
- self.thread.serial_lock.release()
return False
with self.thread.serial_lock:
@@ -824,10 +823,12 @@ class LoggingThread(threading.Thread):
self.logfunc(data, ".stdout")
elif self.serialsock and self.serialsock.fileno() == fd:
if self.serial_lock.acquire(blocking=False):
- data = self.recv(1024, self.serialsock)
- self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace'))
- self.logfunc(data, ".2")
- self.serial_lock.release()
+ try:
+ data = self.recv(1024, self.serialsock)
+ self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace'))
+ self.logfunc(data, ".2")
+ finally:
+ self.serial_lock.release()
else:
serial_registered = False
poll.unregister(self.serialsock.fileno())
Avoid "RuntimeError: release unlocked lock" since the lock shouldn't be locked even in the error path. Add a try/finally path to ensure this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- meta/lib/oeqa/utils/qemurunner.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)