fix: delete process/global storage properly

This commit is contained in:
Zach Daniel 2020-09-05 23:14:01 -04:00
parent 863dba6a78
commit c75ae780d7
No known key found for this signature in database
GPG key ID: C377365383138D4B

View file

@ -181,17 +181,17 @@ defmodule Ash.Dsl.Extension do
@extensions unquote(extensions)
# Due to a few strange stateful bugs I've seen,
# we clear the process of any potentially related state
Process.get()
|> Enum.filter(fn key ->
is_tuple(key) and elem(key, 0) == __MODULE__
end)
|> Enum.each(&Process.delete/1)
for {key, _value} <- Process.get() do
if is_tuple(key) and elem(key, 0) == __MODULE__ do
Process.delete(key)
end
end
:persistent_term.get()
|> Enum.filter(fn key ->
is_tuple(key) and elem(key, 0) == __MODULE__
end)
|> Enum.each(&:persistent_term.delete/1)
for {key, _value} <- :persistent_term.get() do
if is_tuple(key) and elem(key, 0) == __MODULE__ do
:persistent_term.erase(key)
end
end
end
imports =