Sha256: 7813f2f7f6d31953c02183287251f080c32100088e9d03e371fabb90bd34fcf1
Contents?: true
Size: 839 Bytes
Versions: 6
Compression:
Stored size: 839 Bytes
Contents
require 'socket' module Celluloid module IO # TCPServer with combined blocking and evented support class TCPServer extend Forwardable def_delegators :@server, :listen, :sysaccept, :close, :closed?, :addr, :setsockopt def initialize(hostname_or_port, port = nil) @server = ::TCPServer.new(hostname_or_port, port) end def accept Celluloid::IO.wait_readable(@server) accept_nonblock end def accept_nonblock Celluloid::IO::TCPSocket.new(@server.accept_nonblock) end def to_io @server end # Convert a Ruby TCPServer into a Celluloid::IO::TCPServer def self.from_ruby_server(ruby_server) server = allocate server.instance_variable_set(:@server, ruby_server) server end end end end
Version data entries
6 entries across 6 versions & 1 rubygems