Method: Fluent::Plugin::Buffer#takeback_chunk

Defined in:
lib/fluent/plugin/buffer.rb

#takeback_chunk(chunk_id) ⇒ Object



576
577
578
579
580
581
582
583
584
585
586
587
588
# File 'lib/fluent/plugin/buffer.rb', line 576

def takeback_chunk(chunk_id)
  log.on_trace { log.trace "taking back a chunk", instance: self.object_id, chunk_id: dump_unique_id_hex(chunk_id) }

  synchronize do
    chunk = @dequeued.delete(chunk_id)
    return false unless chunk # already purged by other thread
    @queue.unshift(chunk)
    log.on_trace { log.trace "chunk taken back", instance: self.object_id, chunk_id: dump_unique_id_hex(chunk_id), metadata: chunk. }
    @queued_num[chunk.] += 1 # BUG if nil
    @dequeued_num[chunk.] -= 1
  end
  true
end