Alternative patch for TCP_NODELAY in MochiWeb
21 May 2008
22:03
as Diff
| 1 | Index: src/mochiweb/mochiweb_socket_server.erl |
|---|---|
| 2 | =================================================================== |
| 3 | --- src/mochiweb/mochiweb_socket_server.erl (revision 658408) |
| 4 | +++ src/mochiweb/mochiweb_socket_server.erl (working copy) |
| 5 | @@ -22,7 +22,8 @@ |
| 6 | ip=any, |
| 7 | listen=null, |
| 8 | acceptor=null, |
| 9 | - backlog=30}). |
| 10 | + backlog=30, |
| 11 | + nodelay=true}). |
| 12 | |
| 13 | start(State=#mochiweb_socket_server{}) -> |
| 14 | start_server(State); |
| 15 | @@ -79,6 +80,8 @@ |
| 16 | parse_options(Rest, State#mochiweb_socket_server{loop=Loop}); |
| 17 | parse_options([{backlog, Backlog} | Rest], State) -> |
| 18 | parse_options(Rest, State#mochiweb_socket_server{backlog=Backlog}); |
| 19 | +parse_options([{nodelay, NoDelay} | Rest], State) -> |
| 20 | + parse_options(Rest, State#mochiweb_socket_server{nodelay=NoDelay}); |
| 21 | parse_options([{max, Max} | Rest], State) -> |
| 22 | MaxInt = case Max of |
| 23 | Max when is_list(Max) -> |
| 24 | @@ -96,14 +99,16 @@ |
| 25 | gen_server:start_link(Name, ?MODULE, State, []) |
| 26 | end. |
| 27 | |
| 28 | -init(State=#mochiweb_socket_server{ip=Ip, port=Port, backlog=Backlog}) -> |
| 29 | +init(State=#mochiweb_socket_server{ip=Ip, port=Port, backlog=Backlog, |
| 30 | + nodelay=NoDelay}) -> |
| 31 | process_flag(trap_exit, true), |
| 32 | BaseOpts = [binary, |
| 33 | {reuseaddr, true}, |
| 34 | {packet, 0}, |
| 35 | {backlog, Backlog}, |
| 36 | {recbuf, 8192}, |
| 37 | - {active, false}], |
| 38 | + {active, false}, |
| 39 | + {nodelay, NoDelay}], |
| 40 | Opts = case Ip of |
| 41 | any -> |
| 42 | BaseOpts; |
Comments
No comments so far.
