mercurial/lock.py
changeset 23032 f484be02bd35
parent 20380 c697b70f295f
child 25660 328739ea70c3
equal deleted inserted replaced
23031:3c0983cc279e 23032:f484be02bd35
   137         elif self.held == 1:
   137         elif self.held == 1:
   138             self.held = 0
   138             self.held = 0
   139             if os.getpid() != self.pid:
   139             if os.getpid() != self.pid:
   140                 # we forked, and are not the parent
   140                 # we forked, and are not the parent
   141                 return
   141                 return
   142             if self.releasefn:
       
   143                 self.releasefn()
       
   144             try:
   142             try:
   145                 self.vfs.unlink(self.f)
   143                 if self.releasefn:
   146             except OSError:
   144                     self.releasefn()
   147                 pass
   145             finally:
       
   146                 try:
       
   147                     self.vfs.unlink(self.f)
       
   148                 except OSError:
       
   149                     pass
   148             for callback in self.postrelease:
   150             for callback in self.postrelease:
   149                 callback()
   151                 callback()
   150 
   152 
   151 def release(*locks):
   153 def release(*locks):
   152     for lock in locks:
   154     for lock in locks: