diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-05-07 20:05:21 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-05-07 21:35:09 -0700 |
commit | bc5d73fa3db0569c55d48c2e738f12742579536c (patch) | |
tree | b2504b2c394038980806c09d0462f4480ea53b08 | |
parent | 646c21b911ca2d14fb0f8489ff22e05fe9c4199a (diff) | |
download | portage-bc5d73fa3db0569c55d48c2e738f12742579536c.tar.gz portage-bc5d73fa3db0569c55d48c2e738f12742579536c.tar.bz2 portage-bc5d73fa3db0569c55d48c2e738f12742579536c.zip |
vardbapi: acquire lock during counter_tick_core
-rw-r--r-- | pym/portage/dbapi/vartree.py | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index bc9916e31..2708e4307 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -779,17 +779,25 @@ class vardbapi(dbapi): to the global file. Returns new counter value. @param myroot: ignored, self._eroot is used instead + @param mycpv: ignored """ myroot = None - counter = self.get_counter_tick_core(mycpv=mycpv) - 1 - if incrementing: - #increment counter - counter += 1 - # use same permissions as config._init_dirs() - ensure_dirs(os.path.dirname(self._counter_path), - gid=portage_gid, mode=0o2750, mask=0o2) - # update new global counter file - write_atomic(self._counter_path, str(counter)) + mycpv = None + + self.lock() + try: + counter = self.get_counter_tick_core() - 1 + if incrementing: + #increment counter + counter += 1 + # use same permissions as config._init_dirs() + ensure_dirs(os.path.dirname(self._counter_path), + gid=portage_gid, mode=0o2750, mask=0o2) + # update new global counter file + write_atomic(self._counter_path, str(counter)) + finally: + self.unlock() + return counter def _dblink(self, cpv): |