summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-02 08:21:20 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-02 08:21:20 +0000
commitd067203492b79f51319d21f0daaddbf44ece33d4 (patch)
tree65d9846ca6e7566e18b21f20686cd0fce8508694 /pym/_emerge/__init__.py
parentb71651e856dbdd2602ba2b5fe4b46d8804ea1904 (diff)
downloadportage-d067203492b79f51319d21f0daaddbf44ece33d4.tar.gz
portage-d067203492b79f51319d21f0daaddbf44ece33d4.tar.bz2
portage-d067203492b79f51319d21f0daaddbf44ece33d4.zip
Remove $PORTAGE_BUILDDIR locking from portage.pkgmerge() and use
an instance of EbuildBuildDir instead. svn path=/main/trunk/; revision=10892
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r--pym/_emerge/__init__.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index a2dc88b1a..225a4c4d6 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -2124,12 +2124,18 @@ class Binpkg(SlotObject):
short_msg = "emerge: (%s of %s) %s Merge Binary" % \
(pkg_count.curval, pkg_count.maxval, pkg.cpv)
logger.log(msg, short_msg=short_msg)
- merge = BinpkgMerge(find_blockers=find_blockers,
- ldpath_mtimes=ldpath_mtimes, pkg=pkg, pretend=opts.pretend,
- pkg_path=pkg_path, settings=settings)
- retval = merge.execute()
- if retval != os.EX_OK:
- return retval
+
+ build_dir = EbuildBuildDir(pkg=pkg, settings=settings)
+ try:
+ build_dir.lock()
+ merge = BinpkgMerge(find_blockers=find_blockers,
+ ldpath_mtimes=ldpath_mtimes, pkg=pkg, pretend=opts.pretend,
+ pkg_path=pkg_path, settings=settings)
+ retval = merge.execute()
+ if retval != os.EX_OK:
+ return retval
+ finally:
+ build_dir.unlock()
return os.EX_OK
class BinpkgFetcher(Task):