bitbake/utils.py: Add option of holding shared lockfiles
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
e5a629f314
commit
7857834691
|
@ -399,7 +399,7 @@ def fileslocked(files):
|
||||||
for lock in locks:
|
for lock in locks:
|
||||||
bb.utils.unlockfile(lock)
|
bb.utils.unlockfile(lock)
|
||||||
|
|
||||||
def lockfile(name):
|
def lockfile(name, shared=False):
|
||||||
"""
|
"""
|
||||||
Use the file fn as a lock file, return when the lock has been acquired.
|
Use the file fn as a lock file, return when the lock has been acquired.
|
||||||
Returns a variable to pass to unlockfile().
|
Returns a variable to pass to unlockfile().
|
||||||
|
@ -413,6 +413,10 @@ def lockfile(name):
|
||||||
logger.error("Error, lockfile path is not writable!: %s" % path)
|
logger.error("Error, lockfile path is not writable!: %s" % path)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
op = fcntl.LOCK_EX
|
||||||
|
if shared:
|
||||||
|
op = fcntl.LOCK_SH
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
# If we leave the lockfiles lying around there is no problem
|
# If we leave the lockfiles lying around there is no problem
|
||||||
# but we should clean up after ourselves. This gives potential
|
# but we should clean up after ourselves. This gives potential
|
||||||
|
@ -427,7 +431,7 @@ def lockfile(name):
|
||||||
try:
|
try:
|
||||||
lf = open(name, 'a+')
|
lf = open(name, 'a+')
|
||||||
fileno = lf.fileno()
|
fileno = lf.fileno()
|
||||||
fcntl.flock(fileno, fcntl.LOCK_EX)
|
fcntl.flock(fileno, op)
|
||||||
statinfo = os.fstat(fileno)
|
statinfo = os.fstat(fileno)
|
||||||
if os.path.exists(lf.name):
|
if os.path.exists(lf.name):
|
||||||
statinfo2 = os.stat(lf.name)
|
statinfo2 = os.stat(lf.name)
|
||||||
|
|
Loading…
Reference in New Issue