tcp_close during async accept

Joel Reymont joelr1@REDACTED
Mon Jul 6 18:20:30 CEST 2009


I'm playing with Serge's "Non-blocking TCP server using OTP  
principles" [1]. When spawning a large number of connections almost at  
once, I'm seeing tcp_close messages on the client end, even before  
seeing inet_async on the client end.

I may spawn 700 client connections and only half may go through, even  
though my backlog option is 1024, e.g.

     Opts = [binary,
             {packet, 0},
             {reuseaddr, true},
             {keepalive, true},
             {backlog, 1024},
             {active, false}],
     case gen_tcp:listen(Port, Opts) of
         {ok, Socket} ->
             %% Create first accepting process
             {ok, Ref} = prim_inet:async_accept(Socket, -1),
...

Any suggestions on what's going on?

Is it kosher to use prim_inet:async_accept/2?

Am I using backlog correctly?

	Thanks, Joel

[1] http://www.trapexit.org/Building_a_Non-blocking_TCP_server_using_OTP_principles

---
Mac hacker with a performance bent
http://www.linkedin.com/in/joelreymont



More information about the erlang-questions mailing list