diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/utils.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/bb/utils.py b/lib/bb/utils.py index ccafda19e..82e5dc427 100644 --- a/lib/bb/utils.py +++ b/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): """ |