From 1b5acdb9c59fecd345c7124b78d62f5c7791b38e Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 25 Aug 2021 17:04:22 +0200 Subject: [PATCH] feat(quic): at least 8 x number of cores acceptors --- apps/emqx/src/emqx_listeners.erl | 2 +- apps/emqx/src/emqx_quic_connection.erl | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/apps/emqx/src/emqx_listeners.erl b/apps/emqx/src/emqx_listeners.erl index 3c132f335..2d3357f37 100644 --- a/apps/emqx/src/emqx_listeners.erl +++ b/apps/emqx/src/emqx_listeners.erl @@ -182,7 +182,7 @@ do_start_listener(quic, ListenerName, #{bind := ListenOn} = Opts) -> ListenOpts = [ {cert, maps:get(certfile, Opts)} , {key, maps:get(keyfile, Opts)} , {alpn, ["mqtt"]} - , {conn_acceptors, maps:get(acceptors, Opts, DefAcceptors)} + , {conn_acceptors, lists:max([DefAcceptors, maps:get(acceptors, Opts, 0)])} , {idle_timeout_ms, lists:max([ emqx_config:get_zone_conf(zone(Opts), [mqtt, idle_timeout]) * 3 , timer:seconds(maps:get(idle_timeout, Opts))] diff --git a/apps/emqx/src/emqx_quic_connection.erl b/apps/emqx/src/emqx_quic_connection.erl index 3de607f75..c23aec17b 100644 --- a/apps/emqx/src/emqx_quic_connection.erl +++ b/apps/emqx/src/emqx_quic_connection.erl @@ -35,17 +35,13 @@ init(ConnOpts) when is_map(ConnOpts) -> -spec new_conn(quicer:connection_handler(), cb_state()) -> {ok, cb_state()} | {error, any()}. new_conn(Conn, S) -> process_flag(trap_exit, true), - case emqx_connection:start_link(emqx_quic_stream, {self(), Conn}, S) of - {ok, Pid} -> - receive - {Pid, stream_acceptor_ready} -> - ok = quicer:async_handshake(Conn), - {ok, S}; - {'EXIT', Pid, _Reason} -> - {error, stream_accept_error} - end; - Other -> - {error, Other} + {ok, Pid} = emqx_connection:start_link(emqx_quic_stream, {self(), Conn}, S), + receive + {Pid, stream_acceptor_ready} -> + ok = quicer:async_handshake(Conn), + {ok, S}; + {'EXIT', Pid, _Reason} -> + {error, stream_accept_error} end. -spec connected(quicer:connection_handler(), cb_state()) -> {ok, cb_state()} | {error, any()}.