3

我想将一些来自套接字的二进制文件转换为稍后将在 gen_server 调用中使用的原子。因为我不想用新的(可能是无效的原子)淹没虚拟机,所以我使用:

binary_to_existing_atom(二进制,编码)

现在,我应该如何(或更好地)在系统启动时声明有效原子,以便转换有效?

4

1 回答 1

6

在任何加载的模块中使用原子就足够了,例如在case表达式或其他比较中匹配。

如果比较发生在与您调用不同的模块中binary_to_existing_atom,那么您需要确保在进行转换时加载该模块。如果您构建一个版本并以“嵌入式”模式运行它,那么所有模块都将在启动时加载。否则,模块将在它们被调用时被加载,所以如果有问题的模块是例如由应用程序的监督树启动的 gen_server,那么你就可以了。

于 2013-04-04T11:34:53.357 回答