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