Sha256: 9f08c621b7450758143bb696dc471f77b5cfdbbf7ce9212e5c08b8d206ffd953

Contents?: true

Size: 764 Bytes

Versions: 1

Compression:

Stored size: 764 Bytes

Contents

module Skylight
  module Util
    class Clock

      def absolute_secs
        Time.now.to_i
      end

      if Skylight.native?
        def nanos
          native_hrtime
        end
      else
        # Implement nanos to work when native extension is not present
        def nanos
          now = Time.now
          now.to_i * 1_000_000_000 + now.usec * 1_000
        end
      end

      def secs
        nanos / 1_000_000_000
      end

      def self.absolute_secs
        default.absolute_secs
      end

      def self.nanos
        default.nanos
      end

      def self.secs
        default.secs
      end

      def self.default
        @clock ||= Clock.new
      end

      def self.default=(clock)
        @clock = clock
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
skylight-0.3.7 lib/skylight/util/clock.rb