Skip to content

Commit 60b51d8

Browse files
committed
add terminate callback to clean up persistent_term tid
1 parent 335d7bc commit 60b51d8

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

lib/b4/keydir_owner.ex

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ defmodule B4.KeydirOwner do
1111
@delete_value Writer.delete_value()
1212

1313
defmodule State do
14-
@enforce_keys [:tid]
15-
defstruct [:tid]
14+
@enforce_keys [:directory, :tid]
15+
defstruct [:directory, :tid]
1616
end
1717

1818
def start_link(%{directory: directory} = args) do
@@ -35,7 +35,7 @@ defmodule B4.KeydirOwner do
3535
apply_file_to_keydir(path, tid, @nominal_chunk_size)
3636
end)
3737

38-
{:ok, %State{tid: tid}}
38+
{:ok, %State{directory: directory, tid: tid}}
3939
end
4040

4141
def apply_file_to_keydir(path, tid, nominal_chunk_size) do
@@ -130,4 +130,9 @@ defmodule B4.KeydirOwner do
130130
def name(directory) do
131131
:"#{__MODULE__}-#{directory}"
132132
end
133+
134+
@impl GenServer
135+
def terminate(_reason, %State{directory: directory}) do
136+
:persistent_term.erase({:tid, directory})
137+
end
133138
end

0 commit comments

Comments
 (0)