File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55### Fixed
66
7+ - ** Event Loop Isolation and Resource Safety** - Three fixes for event loop and atom handling
8+ - ** Single-loop-per-interpreter enforcement** - Prevents multiple ` ErlangEventLoop ` instances
9+ from causing event confusion. Added ` _has_loop_ref() ` check that detects running loops;
10+ attempting to create a second loop while one is running raises ` RuntimeError `
11+ - ** Atom creation safety** - Added Python-level caching with configurable limit (10000 default,
12+ ` ERLANG_PYTHON_MAX_ATOMS ` env var) to prevent BEAM atom table exhaustion from untrusted code.
13+ The ` erlang.atom() ` API now goes through the cached wrapper; internal ` _atom() ` NIF still available
14+ - ** Global capsule resource leak** - Added ` global_loop_capsule_destructor ` that properly calls
15+ ` enif_release_resource() ` when capsule is garbage collected. Previously NULL destructor caused
16+ reference leaks on each ` ErlangEventLoop ` creation
17+
18+ - ** Python 3.14 venv activation** - Fixed ` .pth ` file processing in subinterpreters. Python 3.14
19+ stricter module isolation prevented ` sys._venv_site_packages ` from persisting across eval/exec calls.
20+ Now embeds site-packages path directly in the exec code string
21+
722- ** OWN_GIL Safety Fixes** - Critical fixes for OWN_GIL subinterpreter mode
823 - ** Mutex leak in erlang module** - ` async_futures_mutex ` now always destroyed in
924 ` erlang_module_free() ` regardless of ` pipe_initialized ` flag
You can’t perform that action at this time.
0 commit comments