1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-21 05:27:01 +00:00

bitbake: Sync with 1.8 head. Adds locking to the fetcher to prevent parallel downloads, fixes key expansion issues and occasional missing dependency graph links

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2502 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie
2007-08-16 09:55:21 +00:00
parent 11ce59b501
commit 7611768e23
5 changed files with 64 additions and 26 deletions
+14 -1
View File
@@ -24,7 +24,7 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os, re
import os, re, fcntl
import bb
from bb import data
from bb import persist_data
@@ -140,9 +140,21 @@ def go(d):
# Touch md5 file to show activity
os.utime(ud.md5, None)
continue
lf = open(ud.lockfile, "a+")
fcntl.flock(lf.fileno(), fcntl.LOCK_EX)
if ud.localfile and not m.forcefetch(u, ud, d) and os.path.exists(ud.md5):
# If someone else fetched this before we got the lock,
# notice and don't try again
os.utime(ud.md5, None)
fcntl.flock(lf.fileno(), fcntl.LOCK_UN)
lf.close
continue
m.go(u, ud, d)
if ud.localfile and not m.forcefetch(u, ud, d):
Fetch.write_md5sum(u, ud, d)
fcntl.flock(lf.fileno(), fcntl.LOCK_UN)
lf.close
def localpaths(d):
"""
@@ -264,6 +276,7 @@ class FetchData(object):
else:
self.localpath = self.method.localpath(self.url, self, d)
self.md5 = self.localpath + '.md5'
self.lockfile = self.localpath + '.lock'
# if user sets localpath for file, use it instead.