class PhusionPassenger::UnionStation::Connection

def connected?

def connected?
  return !!@channel
end

def disconnect

def disconnect
  @channel.close if @channel
  @channel = nil
end

def initialize(io)

def initialize(io)
  @mutex = Mutex.new
  @refcount = 1
  @channel = MessageChannel.new(io) if io
end

def ref

def ref
  @refcount += 1
end

def synchronize

def synchronize
  @mutex.synchronize do
    yield
  end
end

def unref

def unref
  @refcount -= 1
  if @refcount == 0
    disconnect
  end
end