diff options
author | Calvin Morrison <calvin@pobox.com> | 2025-09-03 21:15:36 -0400 |
---|---|---|
committer | Calvin Morrison <calvin@pobox.com> | 2025-09-03 21:15:36 -0400 |
commit | 49fa5aa2a127bdf8924d02bf77e5086b39c7a447 (patch) | |
tree | 61d86a7705dacc9fddccc29fa79d075d83ab8059 /server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl |
Diffstat (limited to 'server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl')
-rw-r--r-- | server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl b/server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl new file mode 100644 index 0000000..dbd5868 --- /dev/null +++ b/server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl @@ -0,0 +1,50 @@ +%% @copyright 2011 Hunter Morris +%% @doc Implementation of `supervisor' behaviour. +%% @private +%% @end +%% Distributed under the MIT license; see LICENSE for details. +-module(bcrypt_nif_pool_sup). + +-behaviour(supervisor). + +-export([start_link/0, start_child/0, init/1]). + +%% @doc Creates a supervisor process as part of a supervision tree. + + +-spec start_link() -> Result when + Result :: {ok, pid()} | ignore | {error, StartlinkError}, + StartlinkError :: {already_started, pid()} | {shutdown, term()} | term(). +start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +%% @doc Dynamically adds a child specification to supervisor, +%% which starts the corresponding child process. + +-spec start_child() -> Result when + Info :: term(), + Child :: undefined | pid(), + Result :: {ok, Child} | {ok, Child, Info} | {error, StartChildError}, + StartChildError :: already_present | {already_started, Child} | term(). +start_child() -> supervisor:start_child(?MODULE, []). + +-spec init(Args) -> Result when + Args :: list(), + Result :: {ok,{SupFlags, ChildSpec}} | ignore, + SupFlags :: {one_for_one, 10, 10}, + ChildSpec :: [supervisor:child_spec()]. +init([]) -> + {ok, PoolSize} = application:get_env(bcrypt, nif_pool_size), + {ok, MaxOverFlow} = application:get_env(bcrypt, nif_pool_max_overflow), + + PoolArgs = [ + {name, {local, bcrypt_nif_pool}}, + {size, PoolSize}, + {max_overflow, MaxOverFlow}, + {worker_module, bcrypt_nif_worker} + ], + + PoolSpecs = [ + poolboy:child_spec(bcrypt_nif_pool, PoolArgs, []) + ], + + {ok, {{one_for_one, 10, 10}, PoolSpecs}}.
\ No newline at end of file |