mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02: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:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user