From 0cd168d6ec8ca2b07dc30db51787c6511034d1ad Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Wed, 22 Apr 2009 02:01:22 +0200 Subject: [PATCH] switch lock releasing in the extensions from gc to explicit --- hgext/convert/hg.py | 4 ++-- hgext/fetch.py | 3 ++- hgext/keyword.py | 6 +++--- hgext/mq.py | 17 ++++++++++------- hgext/rebase.py | 3 ++- hgext/transplant.py | 5 +++-- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py index ccc5bb0c10..0e7a304fe4 100644 --- a/hgext/convert/hg.py +++ b/hgext/convert/hg.py @@ -56,8 +56,8 @@ class mercurial_sink(converter_sink): def after(self): self.ui.debug(_('run hg sink post-conversion action\n')) - self.lock = None - self.wlock = None + self.lock.release() + self.wlock.release() def revmapfile(self): return os.path.join(self.path, ".hg", "shamap") diff --git a/hgext/fetch.py b/hgext/fetch.py index dabb701450..0ef5c51fbe 100644 --- a/hgext/fetch.py +++ b/hgext/fetch.py @@ -9,6 +9,7 @@ from mercurial.i18n import _ from mercurial.node import nullid, short from mercurial import commands, cmdutil, hg, util, url +from mercurial.lock import release def fetch(ui, repo, source='default', **opts): '''pull changes from a remote repository, merge new changes if needed. @@ -132,7 +133,7 @@ def fetch(ui, repo, source='default', **opts): short(n))) finally: - del lock, wlock + release(lock, wlock) cmdtable = { 'fetch': diff --git a/hgext/keyword.py b/hgext/keyword.py index 1ef3d71fd5..05a32edabf 100644 --- a/hgext/keyword.py +++ b/hgext/keyword.py @@ -83,6 +83,7 @@ like CVS' $Log$, are not supported. A keyword template map from mercurial import commands, cmdutil, dispatch, filelog, revlog, extensions from mercurial import patch, localrepo, templater, templatefilters, util from mercurial.hgweb import webcommands +from mercurial.lock import release from mercurial.node import nullid, hex from mercurial.i18n import _ import re, shutil, tempfile, time @@ -273,8 +274,7 @@ def _kwfwrite(ui, repo, expand, *pats, **opts): lock = repo.lock() kwt.overwrite(None, expand, status[6]) finally: - del wlock, lock - + release(lock, wlock) def demo(ui, repo, *args, **opts): '''print [keywordmaps] configuration and an expansion example @@ -487,7 +487,7 @@ def reposetup(ui, repo): repo.hook('commit', node=n, parent1=_p1, parent2=_p2) return n finally: - del wlock, lock + release(lock, wlock) # monkeypatches def kwpatchfile_init(orig, self, ui, fname, opener, missing=False): diff --git a/hgext/mq.py b/hgext/mq.py index 741ebe2e2e..3590c35408 100644 --- a/hgext/mq.py +++ b/hgext/mq.py @@ -31,6 +31,7 @@ refresh contents of top applied patch qrefresh from mercurial.i18n import _ from mercurial.node import bin, hex, short, nullid, nullrev +from mercurial.lock import release from mercurial import commands, cmdutil, hg, patch, util from mercurial import repair, extensions, url, error import os, sys, re, errno @@ -518,7 +519,8 @@ class queue: repo.dirstate.invalidate() raise finally: - del tr, lock, wlock + del tr + release(lock, wlock) self.removeundo(repo) def _apply(self, repo, series, list=False, update_status=True, @@ -766,6 +768,7 @@ class queue: for chunk in chunks: p.write(chunk) p.close() + wlock.release() wlock = None r = self.qrepo() if r: r.add([patchfn]) @@ -781,7 +784,7 @@ class queue: raise self.removeundo(repo) finally: - del wlock + release(wlock) def strip(self, repo, rev, update=True, backup="all", force=None): wlock = lock = None @@ -801,7 +804,7 @@ class queue: # the actual strip self.removeundo(repo) finally: - del lock, wlock + release(lock, wlock) def isapplied(self, patch): """returns (index, rev, patch)""" @@ -968,7 +971,7 @@ class queue: self.ui.write(_("now at: %s\n") % top) return ret[0] finally: - del wlock + wlock.release() def pop(self, repo, patch=None, force=False, update=True, all=False): def getfile(f, rev, flags): @@ -1070,7 +1073,7 @@ class queue: else: self.ui.write(_("patch queue now empty\n")) finally: - del wlock + wlock.release() def diff(self, repo, pats, opts): top = self.check_toppatch(repo) @@ -1295,7 +1298,7 @@ class queue: self.pop(repo, force=True) self.push(repo, force=True) finally: - del wlock + wlock.release() self.removeundo(repo) def init(self, repo, create=False): @@ -2179,7 +2182,7 @@ def rename(ui, repo, patch, name=None, **opts): r.copy(patch, name) r.remove([patch], False) finally: - del wlock + wlock.release() q.save_dirty() diff --git a/hgext/rebase.py b/hgext/rebase.py index 72cf91d2e4..4271ebdab7 100644 --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -18,6 +18,7 @@ from mercurial import util, repair, merge, cmdutil, commands, error from mercurial import extensions, ancestor, copies, patch from mercurial.commands import templateopts from mercurial.node import nullrev +from mercurial.lock import release from mercurial.i18n import _ import os, errno @@ -141,7 +142,7 @@ def rebase(ui, repo, **opts): if skipped: ui.note(_("%d revisions have been skipped\n") % len(skipped)) finally: - del lock, wlock + release(lock, wlock) def concludenode(repo, rev, p1, p2, state, collapse, last=False, skipped={}, extrafn=None): diff --git a/hgext/transplant.py b/hgext/transplant.py index 1b00f83d89..de5a85b2e6 100644 --- a/hgext/transplant.py +++ b/hgext/transplant.py @@ -168,7 +168,8 @@ class transplanter: finally: self.saveseries(revmap, merges) self.transplants.write() - del lock, wlock + lock.release() + wlock.release() def filter(self, filter, changelog, patchfile): '''arbitrarily rewrite changeset before applying it''' @@ -293,7 +294,7 @@ class transplanter: return n, node finally: - del wlock + wlock.release() def readseries(self): nodes = []