class Syslog::Transport::QueueTransport

Public Class Methods

new() click to toggle source
# File lib/syslog/transport/queue.rb, line 7
def initialize
  @messages_mutex = Mutex.new
  @messages_cv = ConditionVariable.new
  @messages = []
end

Public Instance Methods

close() click to toggle source
# File lib/syslog/transport/queue.rb, line 20
def close
end
read() click to toggle source
# File lib/syslog/transport/queue.rb, line 13
def read
  @messages_mutex.synchronize do
    @messages_cv.wait(@messages_mutex) if @messages.empty?
    @messages.pop
  end
end

Protected Instance Methods

push(msg, sender) click to toggle source
# File lib/syslog/transport/queue.rb, line 25
def push(msg, sender)
  @messages_mutex.synchronize do
    @messages.unshift([msg, sender])
    @messages_cv.signal
  end

  nil
end