##// END OF EJS Templates
localrepo: refactor the locking functions
Benoit Boissinot -
r1751:e9bf415a default
parent child Browse files
Show More
@@ -254,25 +254,25 b' class localrepository(object):'
254 else:
254 else:
255 self.ui.warn(_("no undo information available\n"))
255 self.ui.warn(_("no undo information available\n"))
256
256
257 def lock(self, wait=1):
257 def do_lock(self, lockname, wait, releasefn=None, acquirefn=None):
258 try:
258 try:
259 return lock.lock(self.join("lock"), 0)
259 l = lock.lock(self.join(lockname), 0, releasefn)
260 except lock.LockHeld, inst:
261 if wait:
262 self.ui.warn(_("waiting for lock held by %s\n") % inst.args[0])
263 return lock.lock(self.join("lock"), wait)
264 raise inst
265
266 def wlock(self, wait=1):
267 try:
268 wlock = lock.lock(self.join("wlock"), 0, self.dirstate.write)
269 except lock.LockHeld, inst:
260 except lock.LockHeld, inst:
270 if not wait:
261 if not wait:
271 raise inst
262 raise inst
272 self.ui.warn(_("waiting for lock held by %s\n") % inst.args[0])
263 self.ui.warn(_("waiting for lock held by %s\n") % inst.args[0])
273 wlock = lock.lock(self.join("wlock"), wait, self.dirstate.write)
264 l = lock.lock(self.join(lockname), wait, releasefn)
274 self.dirstate.read()
265 if acquirefn:
275 return wlock
266 acquirefn()
267 return l
268
269 def lock(self, wait=1):
270 return self.do_lock("lock", wait)
271
272 def wlock(self, wait=1):
273 return self.do_lock("wlock", wait,
274 self.dirstate.write,
275 self.dirstate.read)
276
276
277 def checkfilemerge(self, filename, text, filelog, manifest1, manifest2):
277 def checkfilemerge(self, filename, text, filelog, manifest1, manifest2):
278 "determine whether a new filenode is needed"
278 "determine whether a new filenode is needed"
General Comments 0
You need to be logged in to leave comments. Login now