Alternative patch for TCP_NODELAY in MochiWeb

21 May 2008
22:03

By cmlenz 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;

Download Raw Source

Comments

No comments so far.