summaryrefslogtreecommitdiff
path: root/bitbake/lib/bb/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r--bitbake/lib/bb/utils.py13
1 files changed, 13 insertions, 0 deletions
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.