示例#1
0
 def _register_lock(self, lock):
   addr = self.cur_addr
   self.cur_addr += self.lock_size
   lock.addr = addr
   lock.b_addr = addr >> 2
   self.locks_by_b_addr[lock.b_addr] = lock
   log_lock.info("registered: %s" % lock)
示例#2
0
 def _register_lock(self, lock):
     addr = self.cur_addr
     self.cur_addr += self.lock_size
     lock.addr = addr
     lock.b_addr = addr >> 2
     self.locks_by_b_addr[lock.b_addr] = lock
     log_lock.info("registered: %s" % lock)
示例#3
0
 def _unregister_lock(self, lock):
   if not self.locks_by_b_addr.has_key(lock.b_addr):
     raise VamosInternalError("Lock %s not registered!" % lock)
   check = self.locks_by_b_addr[lock.b_addr]
   if check != lock:
     raise VamosInternalError("Invalid Lock unregistered: %s" % lock)
   del self.locks_by_b_addr[lock.b_addr]
   log_lock.info("unregistered: %s" % lock)
   lock.b_addr = 0
   lock.addr = 0
示例#4
0
 def __init__(self, path_mgr, doslist_mgr, base_addr, size):
   self.path_mgr = path_mgr
   self.doslist_mgr = doslist_mgr
   self.base_addr = base_addr
   self.cur_addr = base_addr
   log_lock.info("init manager: base=%06x" % self.base_addr)
   self.locks_by_b_addr = {}
   LabelRange.__init__(self, "locks", base_addr, size)
   self.lock_def  = FileLockDef
   self.lock_size = FileLockDef.get_size()
示例#5
0
 def _unregister_lock(self, lock):
     if not self.locks_by_b_addr.has_key(lock.b_addr):
         raise VamosInternalError("Lock %s not registered!" % lock)
     check = self.locks_by_b_addr[lock.b_addr]
     if check != lock:
         raise VamosInternalError("Invalid Lock unregistered: %s" % lock)
     del self.locks_by_b_addr[lock.b_addr]
     log_lock.info("unregistered: %s" % lock)
     lock.b_addr = 0
     lock.addr = 0
示例#6
0
 def __init__(self, path_mgr, doslist_mgr, base_addr, size):
     self.path_mgr = path_mgr
     self.doslist_mgr = doslist_mgr
     self.base_addr = base_addr
     self.cur_addr = base_addr
     log_lock.info("init manager: base=%06x" % self.base_addr)
     self.locks_by_b_addr = {}
     LabelRange.__init__(self, "locks", base_addr, size)
     self.lock_def = FileLockDef
     self.lock_size = FileLockDef.get_size()
示例#7
0
 def create_lock(self, ami_path, exclusive):
   if ami_path == '':
     ami_path = self.path_mgr.ami_abs_cur_path()
   else:
     ami_path = self.path_mgr.ami_abs_path(ami_path)
   sys_path = self.path_mgr.ami_to_sys_path(ami_path)
   if sys_path == None:
     log_lock.info("lock not found: '%s'" % ami_path)
     return None
   exists = os.path.exists(sys_path)
   if not exists:
     log_lock.info("lock not found: '%s' -> '%s'" % (ami_path, sys_path))
     return None      
   name = self.path_mgr.ami_name_of_path(ami_path)
   lock = AmiLock(name, ami_path, sys_path, exclusive)
   self._register_lock(lock)
   return lock
示例#8
0
 def create_lock(self, ami_path, exclusive):
     if ami_path == '':
         ami_path = self.path_mgr.ami_abs_cur_path()
     else:
         ami_path = self.path_mgr.ami_abs_path(ami_path)
     sys_path = self.path_mgr.ami_to_sys_path(ami_path)
     if sys_path == None:
         log_lock.info("lock not found: '%s'" % ami_path)
         return None
     exists = os.path.exists(sys_path)
     if not exists:
         log_lock.info("lock not found: '%s' -> '%s'" %
                       (ami_path, sys_path))
         return None
     name = self.path_mgr.ami_name_of_path(ami_path)
     lock = AmiLock(name, ami_path, sys_path, exclusive)
     self._register_lock(lock)
     return lock