[MacRuby] #958: Errno::EAGAIN occurs when read data from socket within Webrick.

MacRuby ruby-noreply at macosforge.org
Fri Dec 10 06:25:55 PST 2010


#958: Errno::EAGAIN occurs when read data from socket within Webrick.
----------------------------------+-----------------------------------------
 Reporter:  watson1978@…          |       Owner:  lsansonetti@…        
     Type:  defect                |      Status:  new                  
 Priority:  major                 |   Milestone:  MacRuby 1.0          
Component:  MacRuby               |    Keywords:                       
----------------------------------+-----------------------------------------

Comment(by watson1978@…):

 When I added the sleep in run(sock), I got the expecting result.

 {{{
 #!ruby
 require "webrick"

 class Echo < WEBrick::GenericServer
   def run(sock)
     while line =  sock.gets
       p "[server] : get = " + line
       sock.print line
       # add sleep ===========
       sleep 0.5
     end

     p :end
   end
 end

 server =  Echo.new({
   :BindAddress => "127.0.0.1", :Port => 4000,
                    })

 Signal.trap('INT') { server.shutdown }
 server.start
 }}}

 Result:
 {{{
 $ macruby test_webrick_server.rb
 [2010-12-10 23:18:27] INFO  WEBrick 1.3.1
 [2010-12-10 23:18:27] INFO  ruby 1.9.2 (2008-06-03) [universal-darwin10.0]
 [2010-12-10 23:18:27] INFO  Echo#start: pid=19506 port=4000
 "[server] : get = foo\n"
 "[server] : get = bar\n"
 "[server] : get = 1234\n"
 "[server] : get = aaa\n"
 "[server] : get = bbb\n"
 :end
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/958#comment:2>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list