class TCPClient::Deadline

Constants

MONOTONIC

Public Class Methods

new(timeout) click to toggle source
# File lib/tcp-client/deadline.rb, line 7
def initialize(timeout)
  timeout = timeout&.to_f
  @deadline = timeout&.positive? ? now + timeout : 0
end

Public Instance Methods

remaining_time() click to toggle source
# File lib/tcp-client/deadline.rb, line 16
def remaining_time
  (@deadline != 0) && (remaining = @deadline - now) > 0 ? remaining : nil
end
valid?() click to toggle source
# File lib/tcp-client/deadline.rb, line 12
def valid?
  @deadline != 0
end

Private Instance Methods

now() click to toggle source
# File lib/tcp-client/deadline.rb, line 23
def now
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end