lib/dtas.rb in dtas-0.11.0 vs lib/dtas.rb in dtas-0.12.0
- old
+ new
@@ -1,7 +1,24 @@
# Copyright (C) 2013-2015 all contributors <dtas-all@nongnu.org>
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
module DTAS # :nodoc:
+ # try to use the monotonic clock in Ruby >= 2.1, it is immune to clock
+ # offset adjustments and generates less garbage (Float vs Time object)
+ begin
+ ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
+ def self.now
+ ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
+ end
+ rescue NameError, NoMethodError
+ def self.now # Ruby <= 2.0
+ Time.now.to_f
+ end
+ end
+
+ @null = nil
+ def self.null
+ @null ||= File.open('/dev/null', 'r+')
+ end
end
require_relative 'dtas/compat_onenine'
require_relative 'dtas/spawn_fix'