mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +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:
@@ -521,7 +521,6 @@ class QemuRunner:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.warning('Extra log data exception %s' % repr(e))
|
self.logger.warning('Extra log data exception %s' % repr(e))
|
||||||
data = None
|
data = None
|
||||||
self.thread.serial_lock.release()
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
with self.thread.serial_lock:
|
with self.thread.serial_lock:
|
||||||
@@ -824,10 +823,12 @@ class LoggingThread(threading.Thread):
|
|||||||
self.logfunc(data, ".stdout")
|
self.logfunc(data, ".stdout")
|
||||||
elif self.serialsock and self.serialsock.fileno() == fd:
|
elif self.serialsock and self.serialsock.fileno() == fd:
|
||||||
if self.serial_lock.acquire(blocking=False):
|
if self.serial_lock.acquire(blocking=False):
|
||||||
data = self.recv(1024, self.serialsock)
|
try:
|
||||||
self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace'))
|
data = self.recv(1024, self.serialsock)
|
||||||
self.logfunc(data, ".2")
|
self.logger.debug("Data received serial thread %s" % data.decode('utf-8', 'replace'))
|
||||||
self.serial_lock.release()
|
self.logfunc(data, ".2")
|
||||||
|
finally:
|
||||||
|
self.serial_lock.release()
|
||||||
else:
|
else:
|
||||||
serial_registered = False
|
serial_registered = False
|
||||||
poll.unregister(self.serialsock.fileno())
|
poll.unregister(self.serialsock.fileno())
|
||||||
|
|||||||
Reference in New Issue
Block a user