From 5573852a826d2806c397a27896c4884bf094387d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 27 May 2011 16:13:27 +0100 Subject: bitbake/utils.py: Add option to lockfiles to return immediately rather than wait There are usecases where we don't want to block waiting for a lockfile so enhance the lockfile handling functions to support this. (Bitbake rev: 97e8adf03e5fab1fd40c3d53c48f7b333bc2e145) Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/utils.py') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index ccafda19e3..82e5dc4277 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -402,7 +402,7 @@ def fileslocked(files): for lock in locks: bb.utils.unlockfile(lock) -def lockfile(name, shared=False): +def lockfile(name, shared=False, retry=True): """ Use the file fn as a lock file, return when the lock has been acquired. Returns a variable to pass to unlockfile(). @@ -418,6 +418,8 @@ def lockfile(name, shared=False): op = fcntl.LOCK_EX if shared: op = fcntl.LOCK_SH + if not retry: + op = op | fcntl.LOCK_NB while True: # If we leave the lockfiles lying around there is no problem @@ -442,6 +444,8 @@ def lockfile(name, shared=False): lf.close() except Exception: continue + if not retry: + return None def unlockfile(lf): """ -- cgit v1.2.3-54-g00ecf