我正在一个进程中创建一个具有唯一原子名称的 ETS 表。该过程执行并终止。进程终止是否会清除 ETS 消耗的资源(内存)?
使用后是否有必要清理/删除 ETS 表?
这就是我正在做的事情:
parentProcess() ->
UniqueAtomTerm = 'myAtomIdentifier',
ets:new( UniqueAtomTerm, [] ),
myProc (UniqueAtomTerm).
.
myProc( UniqueAtomTerm ) ->
.... do some inserts, etc
ets:delete_all_objects( UniqueAtomTerm ).
看来,如果我尝试使用相同的原子标识符创建另一个 ETS 表,它将出错,因此上述方法似乎不起作用。根据上述,我不能将 ETS 表选项设置为私有,因为我需要从不同的进程插入(以防私有会清除 ETS 资源)。
所以底线问题:如何从特定的 ETS 表中删除所有资源?