From e2363f3cdddb597c0321b6c396306be966ac58f9 Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Thu, 9 Dec 2010 20:29:31 -0500 Subject: build: use a contextmanager for locks Also don't bother passing logfile to exec_func_python, at least until we start adding the logfile as a file handler to the bitbake logger. (Bitbake rev: f99ee4680c9f67b7ed13fc06044ba2382f9a782c) Signed-off-by: Chris Larson Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bitbake/lib/bb/utils.py') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index d9f543bc6..ba50801ae 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -26,6 +26,7 @@ import logging import bb import bb.msg from commands import getstatusoutput +from contextlib import contextmanager logger = logging.getLogger("BitBake.Util") @@ -398,6 +399,18 @@ def simple_exec(code, context): def better_eval(source, locals): return eval(source, _context, locals) +@contextmanager +def fileslocked(files): + locks = [] + if files: + for lockfile in files: + locks.append(bb.utils.lockfile(lock)) + + yield + + for lock in locks: + bb.utils.unlockfile(lock) + def lockfile(name): """ Use the file fn as a lock file, return when the lock has been acquired. -- cgit v1.2.3