Class: Cql::Io::Unblocker

Inherits:
Object
  • Object
show all
Defined in:
lib/cql/io/io_reactor.rb

Instance Method Summary collapse

Constructor Details

#initializeUnblocker

Returns a new instance of Unblocker.



215
216
217
218
# File 'lib/cql/io/io_reactor.rb', line 215

def initialize
  @out, @in = IO.pipe
  @lock = Mutex.new
end

Instance Method Details

#closeObject



246
247
248
249
250
251
# File 'lib/cql/io/io_reactor.rb', line 246

def close
  @in.close
  @out.close
  @in = nil
  @out = nil
end

#closed?Boolean

Returns:

  • (Boolean)


232
233
234
# File 'lib/cql/io/io_reactor.rb', line 232

def closed?
  @in.nil?
end

#connected?Boolean

Returns:

  • (Boolean)


220
221
222
# File 'lib/cql/io/io_reactor.rb', line 220

def connected?
  true
end

#connecting?Boolean

Returns:

  • (Boolean)


224
225
226
# File 'lib/cql/io/io_reactor.rb', line 224

def connecting?
  false
end

#readObject



242
243
244
# File 'lib/cql/io/io_reactor.rb', line 242

def read
  @out.read_nonblock(2**16)
end

#to_ioObject



253
254
255
# File 'lib/cql/io/io_reactor.rb', line 253

def to_io
  @out
end

#to_sObject



257
258
259
# File 'lib/cql/io/io_reactor.rb', line 257

def to_s
  %(#<#{self.class.name}>)
end

#unblock!Object



236
237
238
239
240
# File 'lib/cql/io/io_reactor.rb', line 236

def unblock!
  @lock.synchronize do
    @in.write(PING_BYTE)
  end
end

#writable?Boolean

Returns:

  • (Boolean)


228
229
230
# File 'lib/cql/io/io_reactor.rb', line 228

def writable?
  false
end