def write(self, data, metadata): if not self.slots_available(1, metadata): raise QueueFull() write_pos = self.write_pos self.fifo[write_pos % self.N] = data self.write_pos = write_pos + 1 return True
def write(self, data, metadata): if not self.slots_available(1, metadata): raise QueueFull() # Write token in peer's FIFO write_pos = self.write_pos[metadata] self.fifo[metadata][write_pos % self.N] = data self.write_pos[metadata] = write_pos + 1 return True
def write(self, data): if not self.slots_available(1): raise QueueFull() _log.debug("WRITING pos %s" % str(self.write_pos)) # Write token in peer's FIFO peer = self.readers[self._update_turn()] write_pos = self.write_pos[peer] self.fifo[peer][write_pos % self.N] = data self.write_pos[peer] = write_pos + 1 return True
def write(self, data, metadata): #_log.debug("WRITE1 %s" % metadata) if not self.slots_available(1, metadata): raise QueueFull() # Write token in peer's FIFO peer = self.readers[self._update_turn()] write_pos = self.write_pos[peer] #_log.debug("WRITE2 %s %s %d\n%s" % (metadata, peer, write_pos, str(map(str, self.fifo[peer])))) self.fifo[peer][write_pos % self.N] = data self.write_pos[peer] = write_pos + 1 return True
def write(self, data, metadata): # print data, metadata # metadata is port_id of containing port data, peer = self._unwrap_data(data) if not self.slots_available(1, peer): # if not slots_available: raise QueueFull() # Write token in peer's FIFO write_pos = self.write_pos[peer] #_log.debug("WRITE2 %s %s %d\n%s" % (metadata, peer, write_pos, str(map(str, self.fifo[peer])))) self.fifo[peer][write_pos % self.N] = data self.write_pos[peer] = write_pos + 1 return True
def write(self, data, metadata): slots = [] full = True for reader in self.readers: s = self.N - (self.write_pos[reader] - self.read_pos[reader]) - 1 slots.append((s, reader)) if s > 0: full = False if full: raise QueueFull() # Write token in peer with most slots FIFO peer = max(slots)[1] write_pos = self.write_pos[peer] self.fifo[peer][write_pos % self.N] = data self.write_pos[peer] = write_pos + 1 return True