summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-05-25 18:37:55 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-25 18:37:55 -0700
commit87cf046b84f153a9e35fb3d248c50479312076a5 (patch)
tree6969ac6ba32b2a591232cf508bf135a14f7d63b6 /pym
parentd810f9a0b160a91fae059a5c32c1b673fe7be3be (diff)
downloadportage-87cf046b84f153a9e35fb3d248c50479312076a5.tar.gz
portage-87cf046b84f153a9e35fb3d248c50479312076a5.tar.bz2
portage-87cf046b84f153a9e35fb3d248c50479312076a5.zip
counter_tick: respect incrementing param always
Every package install must have a unique counter, since a slotmove update can move two packages into the same SLOT and in that case it's important that both packages have different COUNTER metadata.
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/dbapi/vartree.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 62a233258..47952e777 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -812,27 +812,31 @@ class vardbapi(dbapi):
def counter_tick_core(self, myroot=None, incrementing=1, mycpv=None):
"""
This method will grab the next COUNTER value and record it back
- to the global file. Returns new counter value.
+ to the global file. Note that every package install must have
+ a unique counter, since a slotmove update can move two packages
+ into the same SLOT and in that case it's important that both
+ packages have different COUNTER metadata.
@param myroot: ignored, self._eroot is used instead
@param mycpv: ignored
+ @rtype: int
+ @returns: new counter value
"""
myroot = None
mycpv = None
self.lock()
try:
counter = self.get_counter_tick_core() - 1
- if self._cached_counter != counter:
- if incrementing:
- #increment counter
- counter += 1
- # update new global counter file
- try:
- write_atomic(self._counter_path, str(counter))
- except InvalidLocation:
- self.settings._init_dirs()
- write_atomic(self._counter_path, str(counter))
- self._cached_counter = counter
+ if incrementing:
+ #increment counter
+ counter += 1
+ # update new global counter file
+ try:
+ write_atomic(self._counter_path, str(counter))
+ except InvalidLocation:
+ self.settings._init_dirs()
+ write_atomic(self._counter_path, str(counter))
+ self._cached_counter = counter
finally:
self.unlock()