mercurial/lock.py
changeset 422 10c43444a38e
parent 161 0b4c5cb953d9
child 429 688d03d6997a
equal deleted inserted replaced
421:43b8da7420a9 422:10c43444a38e
     4 #
     4 #
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import os, time
     8 import os, time
       
     9 import util
     9 
    10 
    10 class LockHeld(Exception):
    11 class LockHeld(Exception):
    11     pass
    12     pass
    12 
    13 
    13 class lock:
    14 class lock:
    32                 raise inst
    33                 raise inst
    33         
    34         
    34     def trylock(self):
    35     def trylock(self):
    35         pid = os.getpid()
    36         pid = os.getpid()
    36         try:
    37         try:
    37             os.symlink(str(pid), self.f)
    38             util.makelock(str(pid), self.f)
    38             self.held = 1
    39             self.held = 1
    39         except:
    40         except:
    40             raise LockHeld(os.readlink(self.f))
    41             raise LockHeld(util.readlock(self.f))
    41 
    42 
    42     def release(self):
    43     def release(self):
    43         if self.held:
    44         if self.held:
    44             self.held = 0
    45             self.held = 0
    45             os.unlink(self.f)
    46             os.unlink(self.f)