Current section

Files

Jump to
erlang_python src erlang_python_app.erl
Raw

src/erlang_python_app.erl

%% Copyright 2026 Benoit Chesneau
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%% @doc Application callback module for erlang_python.
%%% @private
-module(erlang_python_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _StartArgs) ->
erlang_python_sup:start_link().
stop(_State) ->
%% Stop pools before application shutdown to ensure proper cleanup
%% of subinterpreters before NIF resources are garbage collected
try py_context_router:stop_pool(io) catch _:_ -> ok end,
try py_context_router:stop_pool(default) catch _:_ -> ok end,
ok.