def p__killContender(self, key, index, owner): continueFlag = 1 retval = 0 # Do we have the key in the master key list? self.p__masterKL.lock() index_list = self.p__masterKL.find(key) if index_list is None: continueFlag = 0 self.p__masterKL.unlock() # Do we have the index in the index list? if continueFlag: index_list.lock() contender_list = index_list.find(index) if contender_list is None: continueFlag = 0 index_list.unlock() # Where is this particular contender? if continueFlag: c = contender.contender(key=key, index=index, owner=owner) contender_list.lock() retval = contender_list.release(c) contender_list.unlock() return retval
def renew(self, dataStream): self.p__ac.increment("lockRenewals") key = self.getkey(dataStream) index = self.getindex(dataStream) owner = self.getowner(dataStream) continueFlag = 1 retval = 0 # Do we have the key in the master key list? self.p__masterKL.lock() index_list = self.p__masterKL.find(key) if index_list is None: continueFlag = 0 self.p__masterKL.unlock() # Do we have the index in the index list? if continueFlag: index_list.lock() contender_list = index_list.find(index) if contender_list is None: continueFlag = 0 index_list.unlock() # Where is this particular contender? if continueFlag: c = contender.contender(key=key, index=index, owner=owner) contender_list.lock() retval = contender_list.renew(c) contender_list.unlock() dataStream.send(pack("!H", retval & 0xFFFF))
def contLoc(self, dataStream): self.p__ac.increment("contenderLookups") key = self.getkey(dataStream) index = self.getindex(dataStream) owner = self.getowner(dataStream) # Do we have the key in the master key list? self.p__masterKL.lock() index_list = self.p__masterKL.setdefault(key) self.p__masterKL.unlock() # Do we have the index in the index list? index_list.lock() contender_list = index_list.setdefault(index) index_list.unlock() # Where is this particular contender? c = contender.contender(key=key, index=index, owner=owner) contender_list.lock() retval = contender_list.getPosition(c, add=1) contender_list.unlock() dataStream.send(pack("!H", retval & 0xFFFF))
def gimme(self, dataStream): self.p__ac.increment("lockRequests") key = self.getkey(dataStream) index = self.getindex(dataStream) owner = self.getowner(dataStream) TTL = self.getTTL(dataStream) TTW = self.getTTW(dataStream) priority = self.getPriority(dataStream) self.p__masterKL.lock() index_list = self.p__masterKL.setdefault(key) self.p__masterKL.unlock() index_list.lock() contender_list = index_list.setdefault(index) index_list.unlock() # Add the contender c = contender.contender(key=key, index=index, owner=owner, TTL=TTL, TTW=TTW, priority=priority) contender_list.lock() retval = contender_list.add(c) contender_list.unlock() dataStream.send(pack("!H", retval & 0xFFFF))