From 955d8e37fd7b31a8ba5790901168a7a78860f2b2 Mon Sep 17 00:00:00 2001 From: Feng Date: Tue, 16 Feb 2016 03:03:16 +0800 Subject: [PATCH] router_pool/1 --- src/emqttd_pubsub_sup.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/emqttd_pubsub_sup.erl b/src/emqttd_pubsub_sup.erl index 686c9884d..c04b486f6 100644 --- a/src/emqttd_pubsub_sup.erl +++ b/src/emqttd_pubsub_sup.erl @@ -47,8 +47,9 @@ init([Env]) -> %% Router Pool Sup RouterMFA = {emqttd_router, start_link, [fun setstats/1, Env]}, + %% Pool_size / 2 - RouterSup = emqttd_pool_sup:spec(router_pool, [router, hash, 1 + (pool_size(Env) div 2), RouterMFA]), + RouterSup = emqttd_pool_sup:spec(router_pool, [router, hash, router_pool(Env), RouterMFA]), %% PubSub Pool Sup PubSubMFA = {emqttd_pubsub, start_link, [fun setstats/1, Env]}, @@ -71,6 +72,12 @@ ensure_tab(Tab, Opts) -> _ -> ok end. +router_pool(Env) -> + case pool_size(Env) div 2 of + 0 -> 1; + I -> I + end. + pool_size(Env) -> Schedulers = erlang:system_info(schedulers), proplists:get_value(pool_size, Env, Schedulers).