Esempio n. 1
0
 def add_locks(self, lock_mgr):
   self.lock_mgr = lock_mgr
   for entry in self.entries:
     first       = True
     assign_last = None
     name_addr   = entry.access.r_s("dol_Name")
     #print "*** Entry %s, Name address is %s,%s" % (entry.mem,name_addr,self.mem.r_bstr(name_addr))
     for dirs in entry.assigns:
       lock = lock_mgr.create_lock(None,dirs,False)
       if lock is None:
         log_doslist.warning("%s does not exist", dirs)
       else:
         entry.locks.append(lock)
         if first:
           entry.access.w_s("dol_Lock",lock.mem.addr)
           first = False
         else:
           assign_entry = self.alloc.alloc_struct("AssignList",AssignListStruct)
           entry.alist.append(assign_entry)
           assign_entry.access.w_s("al_Next",0)
           assign_entry.access.w_s("al_Lock",lock.mem.addr)
           if assign_last != None:
             assign_last.w_s("al_Next",assign_entry.addr)
           else:
             entry.access.w_s("dol_List",assign_entry.addr)
           assign_last = assign_entry.access
Esempio n. 2
0
 def add_locks(self, lock_mgr):
   self.lock_mgr = lock_mgr
   for entry in self.entries:
     first       = True
     assign_last = None
     name_addr   = entry.access.r_s("dol_Name")
     #print "*** Entry %s, Name address is %s,%s" % (entry.mem,name_addr,self.mem.r_bstr(name_addr))
     for dirs in entry.assigns:
       lock = lock_mgr.create_lock(None,dirs,False)
       if lock is None:
         log_doslist.warning("%s does not exist", dirs)
       else:
         entry.locks.append(lock)
         if first:
           entry.access.w_s("dol_Lock",lock.mem.addr)
           first = False
         else:
           assign_entry = self.alloc.alloc_struct("AssignList",AssignListStruct)
           entry.alist.append(assign_entry)
           assign_entry.access.w_s("al_Next",0)
           assign_entry.access.w_s("al_Lock",lock.mem.addr)
           if assign_last != None:
             assign_last.w_s("al_Next",assign_entry.addr)
           else:
             entry.access.w_s("dol_List",assign_entry.addr)
           assign_last = assign_entry.access