lib/dtas/buffer.rb in dtas-0.9.0 vs lib/dtas/buffer.rb in dtas-0.10.0

- old
+ new

@@ -1,11 +1,11 @@ -# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors +# Copyright (C) 2013-2015 all contributors <dtas-all@nongnu.org> # License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) require 'io/wait' require_relative '../dtas' -require_relative 'compat_rbx' # IO#nread +# pipe buffer management for -player class DTAS::Buffer # :nodoc: begin raise LoadError, "no splice with _DTAS_POSIX" if ENV["_DTAS_POSIX"] require 'io/splice' # splice is only in Linux for now... require_relative 'buffer/splice' @@ -46,17 +46,17 @@ # returns one of: # - :wait_readable # - subset of targets array for :wait_writable # - some type of StandardError # - nil - def broadcast(targets) + def broadcast(targets, limit = nil) case targets.size when 0 :ignore # this will pause decoders when 1 - broadcast_one(targets) + broadcast_one(targets, limit) else # infinity - broadcast_inf(targets) + broadcast_inf(targets, limit) end end def readable_iter # this calls DTAS::Buffer#broadcast from DTAS::Player