diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-27 16:13:27 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-27 17:55:51 +0100 |
commit | 5573852a826d2806c397a27896c4884bf094387d (patch) | |
tree | f94fcab3e367db4f6d030885bc479833925ebfd9 /bitbake/lib | |
parent | 00c71132d5a326546bbb7fdf173995c76a9e9803 (diff) | |
download | poky-5573852a826d2806c397a27896c4884bf094387d.tar.gz |
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/utils.py | 6 |
1 files changed, 5 insertions, 1 deletions
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): | |||
402 | for lock in locks: | 402 | for lock in locks: |
403 | bb.utils.unlockfile(lock) | 403 | bb.utils.unlockfile(lock) |
404 | 404 | ||
405 | def lockfile(name, shared=False): | 405 | def lockfile(name, shared=False, retry=True): |
406 | """ | 406 | """ |
407 | Use the file fn as a lock file, return when the lock has been acquired. | 407 | Use the file fn as a lock file, return when the lock has been acquired. |
408 | Returns a variable to pass to unlockfile(). | 408 | Returns a variable to pass to unlockfile(). |
@@ -418,6 +418,8 @@ def lockfile(name, shared=False): | |||
418 | op = fcntl.LOCK_EX | 418 | op = fcntl.LOCK_EX |
419 | if shared: | 419 | if shared: |
420 | op = fcntl.LOCK_SH | 420 | op = fcntl.LOCK_SH |
421 | if not retry: | ||
422 | op = op | fcntl.LOCK_NB | ||
421 | 423 | ||
422 | while True: | 424 | while True: |
423 | # If we leave the lockfiles lying around there is no problem | 425 | # If we leave the lockfiles lying around there is no problem |
@@ -442,6 +444,8 @@ def lockfile(name, shared=False): | |||
442 | lf.close() | 444 | lf.close() |
443 | except Exception: | 445 | except Exception: |
444 | continue | 446 | continue |
447 | if not retry: | ||
448 | return None | ||
445 | 449 | ||
446 | def unlockfile(lf): | 450 | def unlockfile(lf): |
447 | """ | 451 | """ |