mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +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: 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:
|
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:
|
||||||
@@ -822,10 +821,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