scripts/runqemu: Tidy up lock handling code

Various tweaks:
- Balance up the aquire/release functions
- Use debug messge for both acquiring and release message for consistency in logs
- Use None instead of an empty string
- Reset the value of the field if we don't have the lock any more

(From OE-Core rev: d3c052e6ccd81d544b23a3bee80ba00cafaedbbd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2018-11-28 17:30:10 +00:00
parent f7b5f33ae1
commit d99e6afb8d

View File

@@ -218,7 +218,7 @@ class BaseConfig(object):
self.tcpserial_portnum = ''
self.custombiosdir = ''
self.lock = ''
self.lock_descriptor = ''
self.lock_descriptor = None
self.bitbake_e = ''
self.snapshot = False
self.fstypes = ('ext2', 'ext3', 'ext4', 'jffs2', 'nfs', 'btrfs',
@@ -252,13 +252,17 @@ class BaseConfig(object):
logger.info(msg)
if self.lock_descriptor:
self.lock_descriptor.close()
self.lock_descriptor = None
return False
return True
def release_lock(self):
fcntl.flock(self.lock_descriptor, fcntl.LOCK_UN)
self.lock_descriptor.close()
os.remove(self.lock)
if self.lock_descriptor:
logger.debug("Releasing lockfile for tap device '%s'" % self.tap)
fcntl.flock(self.lock_descriptor, fcntl.LOCK_UN)
self.lock_descriptor.close()
os.remove(self.lock)
self.lock_descriptor = None
def get(self, key):
if key in self.d:
@@ -1232,9 +1236,7 @@ class BaseConfig(object):
cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.bindir_native)
logger.debug('Running %s' % cmd)
subprocess.check_call(cmd, shell=True)
if self.lock_descriptor:
logger.info("Releasing lockfile for tap device '%s'" % self.tap)
self.release_lock()
self.release_lock()
if self.nfs_running:
logger.info("Shutting down the userspace NFS server...")