aboutsummaryrefslogtreecommitdiff
path: root/server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl
diff options
context:
space:
mode:
authorCalvin Morrison <calvin@pobox.com>2025-09-03 21:15:36 -0400
committerCalvin Morrison <calvin@pobox.com>2025-09-03 21:15:36 -0400
commit49fa5aa2a127bdf8924d02bf77e5086b39c7a447 (patch)
tree61d86a7705dacc9fddccc29fa79d075d83ab8059 /server/_build/default/lib/bcrypt/src/bcrypt_nif_pool_sup.erl
i vibe coded itHEADmaster
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.erl50
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