parameters: (self, offset, data)
return_statement: return writes
docstring: Request any available writes given new incoming data.
  
          You call this method by providing new data along with the
          offset associated with the data.  If that new data unlocks
          any contiguous writes that can now be submitted, this
          method will return all applicable writes.
  
          This is done with 1 method call so you don't have to
          make two method calls (put(), get()) which acquires a lock
          each method call.
docstring_summary: Request any available writes given new incoming data.
docstring_tokens: Request any available writes given new incoming data .
function: def request_writes(self, offset, data):
          """Request any available writes given new incoming data.
  
          You call this method by providing new data along with the
          offset associated with the data.  If that new data unlocks
          any contiguous writes that can now be submitted, this
          method will return all applicable writes.
  
          This is done with 1 method call so you don't have to
          make two method calls (put(), get()) which acquires a lock
          each method call.
  
          """
          if offset < self._next_offset:
              # This is a request for a write that we've already
              # seen.  This can happen in the event of a retry
              # where if we retry at at offset N/2, we'll requeue
              # offsets 0-N/2 again.
              return []
          writes = []
          if offset in self._pending_offsets:
              # We've already queued this offset so this request is
              # a duplicate.  In this case we should ignore
              # this request and prefer what's already queued.
              return []
          heapq.heappush(self._writes, (offset, data))
          self._pending_offsets.add(offset)
          while self._writes and self._writes[0][0] == self._next_offset:
              next_write = heapq.heappop(self._writes)
              writes.append({'offset': next_write[0], 'data': next_write[1]})
              self._pending_offsets.remove(next_write[0])
              self._next_offset += len(next_write[1])
          return writes
function_tokens: def request_writes ( self , offset , data ) : if offset < self . _next_offset : # This is a request for a write that we've already # seen.  This can happen in the event of a retry # where if we retry at at offset N/2, we'll requeue # offsets 0-N/2 again. return [ ] writes = [ ] if offset in self . _pending_offsets : # We've already queued this offset so this request is # a duplicate.  In this case we should ignore # this request and prefer what's already queued. return [ ] heapq . heappush ( self . _writes , ( offset , data ) ) self . _pending_offsets . add ( offset ) while self . _writes and self . _writes [ 0 ] [ 0 ] == self . _next_offset : next_write = heapq . heappop ( self . _writes ) writes . append ( { 'offset' : next_write [ 0 ] , 'data' : next_write [ 1 ] } ) self . _pending_offsets . remove ( next_write [ 0 ] ) self . _next_offset += len ( next_write [ 1 ] ) return writes