From 856b1c7064155e59c84942a7e8cd36128b6be34e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 6 Sep 2015 23:15:36 +0000 Subject: use a common /dev/null This allows us to avoid wasting time reopening the same device over and over again. --- lib/dtas/buffer/splice.rb | 3 +-- lib/dtas/format.rb | 4 ++-- lib/dtas/player.rb | 2 +- lib/dtas/sink.rb | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) (limited to 'lib/dtas') diff --git a/lib/dtas/buffer/splice.rb b/lib/dtas/buffer/splice.rb index 02ce877..be40881 100644 --- a/lib/dtas/buffer/splice.rb +++ b/lib/dtas/buffer/splice.rb @@ -10,7 +10,6 @@ module DTAS::Buffer::Splice # :nodoc: MAX_AT_ONCE = 4096 # page size in Linux MAX_AT_ONCE_1 = 65536 MAX_SIZE = File.read("/proc/sys/fs/pipe-max-size").to_i - DEVNULL = File.open("/dev/null", "r+") F_MOVE = IO::Splice::F_MOVE def buffer_size @@ -25,7 +24,7 @@ module DTAS::Buffer::Splice # :nodoc: # be sure to only call this with nil when all writers to @wr are done def discard(bytes) - IO.splice(@to_io, nil, DEVNULL, nil, bytes) + IO.splice(@to_io, nil, DTAS.null, nil, bytes) end def broadcast_one(targets, limit = nil) diff --git a/lib/dtas/format.rb b/lib/dtas/format.rb index a6314bd..cfcec64 100644 --- a/lib/dtas/format.rb +++ b/lib/dtas/format.rb @@ -44,9 +44,9 @@ class DTAS::Format # :nodoc: def self.precision(env, infile) # sox.git f4562efd0aa3 - qx(env, %W(soxi -p #{infile}), err: "/dev/null").to_i + qx(env, %W(soxi -p #{infile}), err: DTAS.null).to_i rescue # fallback to parsing the whole output - s = qx(env, %W(soxi #{infile}), err: "/dev/null") + s = qx(env, %W(soxi #{infile}), err: DTAS.null) s =~ /Precision\s+:\s*(\d+)-bit/n v = $1.to_i return v if v > 0 diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb index cdf1265..a102618 100644 --- a/lib/dtas/player.rb +++ b/lib/dtas/player.rb @@ -426,7 +426,7 @@ class DTAS::Player # :nodoc: dst = @sink_buf pending.dst_assoc(dst) - pending.src_spawn(@format, @rg, out: dst.wr, in: "/dev/null") + pending.src_spawn(@format, @rg, out: dst.wr, in: DTAS.null) # watch and restart on modifications pending.respond_to?(:watch_begin) and diff --git a/lib/dtas/sink.rb b/lib/dtas/sink.rb index 70d6861..0bf49f4 100644 --- a/lib/dtas/sink.rb +++ b/lib/dtas/sink.rb @@ -91,7 +91,7 @@ class DTAS::Sink # :nodoc: w.sink = self rv << w end - opts[:in] = "/dev/null" + opts[:in] = DTAS.null # map to real /dev/fd/* values and setup proper redirects cmd = cmd.gsub(DEVFD_RE) do -- cgit v1.2.3-24-ge0c7