mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01: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: 78f86c946d37d15b044be158e22e9853009cae27) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b0732ee009ca47580d1d2ad75334f4aa50e6efd5) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
1a526844db
commit
b0c9ca3600
@@ -519,7 +519,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:
|
||||
@@ -822,10 +821,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