lib/fluent/buffer.rb in fluentd-0.10.6 vs lib/fluent/buffer.rb in fluentd-0.10.7
- old
+ new
@@ -112,12 +112,17 @@
class BasicBuffer < Buffer
include MonitorMixin
def initialize
super
+ @parallel_pop = true
end
+ def enable_parallel(b=true)
+ @parallel_pop = b
+ end
+
config_param :buffer_chunk_limit, :size, :default => 256*1024*1024
config_param :buffer_queue_limit, :integer, :default => 128
def configure(conf)
super
@@ -150,13 +155,14 @@
if top.size + data.bytesize <= @buffer_chunk_limit
chain.next
top << data
return false
- elsif data.bytesize > @buffer_chunk_limit
- # TODO
- raise BufferError, "received data too large"
+ ## FIXME
+ #elsif data.bytesize > @buffer_chunk_limit
+ # # TODO
+ # raise BufferError, "received data too large"
elsif @queue.size >= @buffer_queue_limit
# TODO
raise BufferError, "queue size exceeds limit"
end
@@ -218,10 +224,10 @@
end
def pop(out)
chunk = nil
@queue.synchronize do
- if @parallel
+ if @parallel_pop
chunk = @queue.find {|c| c.try_mon_enter }
return false unless chunk
else
chunk = @queue.first
return false unless chunk