Changeset 143

Show
Ignore:
Timestamp:
05/25/06 20:27:24 (2 years ago)
Author:
blackhedd
Message:

nonblocking accepts for unix-domain sockets

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • experiments/machine/lib/machine/eio.rb

    r142 r143  
    239239  # eio = TCPServerEventableIO.new( sd ) 
    240240  # 
     241  # For Unix-domain sockets, the idiom is: 
     242  # sd = Socket.new( Socket::AF_UNIX, Socket::SOCK_STREAM, 0) 
     243  # sd.bind( Socket.pack_sockaddr_un( socketname )) 
     244  # sd.listen(5) 
     245  # eio = TCPServerEventableIO.new( sd ) 
     246  # 
     247  # 
    241248  def initialize io 
    242249    super 
  • experiments/machine/test/eio_test.rb

    r141 r143  
    2121 
    2222  def test_eio 
     23=begin 
    2324    sin = Socket::pack_sockaddr_in(25, "relay.spheriq.net") 
    2425    40.times { 
     
    4445    } 
    4546    } 
     47=end 
    4648 
     49    #sd = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0) 
     50    #sockaddr = Socket.pack_sockaddr_in( 8901, "127.0.0.1" ) 
     51    #sd.bind sockaddr 
     52    #sd.listen( 100 ) 
     53 
     54    File.unlink("./a.chain") 
     55    sd = Socket.new( Socket::AF_UNIX, Socket::SOCK_STREAM, 0) 
     56    sockaddr = Socket.pack_sockaddr_un( "./a.chain" ) 
     57    sd.bind sockaddr 
     58    sd.listen( 100 ) 
     59    eio = TcpServerEventableIO.new(sd) {|me| 
     60      me.add_handler(:accept) {|evt| 
     61        eio = EventableIO.new(evt.data) {|me| 
     62          me.add_handler(:read) {|evt| 
     63            me.send_data "<<<#{evt.data.chomp}>>>\n" 
     64          } 
     65        } 
     66      } 
     67    } 
    4768    Reactor.instance.run 
    4869