1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 17:19:20 +00:00

qemurunner: Clean up serial_lock handling

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.

(From OE-Core rev: b0732ee009ca47580d1d2ad75334f4aa50e6efd5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2024-10-13 08:37:07 +01:00
parent 494983bc92
commit d29f43bd0b
+6 -5
View File
@@ -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())