3

ソケットから来るいくつかのバイナリを、後で gen_server 呼び出しで使用するアトムに変換したいと思います。VM を新しい (そしておそらく無効なアトム) であふれさせたくないので、以下を使用します。

binary_to_existing_atom(バイナリ、エンコーディング)

さて、変換が有効になるように、システムの起動時に有効なアトムをどのように (またはどこで) 宣言する必要がありますか?

4

1 に答える 1

6

アトムがロードされたモジュールで使用されていれば十分です。たとえば、case式やその他の比較で一致します。

を呼び出した場所とは別のモジュールで比較が行われるbinary_to_existing_atom場合は、変換を行うまでにそのモジュールがロードされていることを確認する必要があります。リリースをビルドして「組み込み」モードで実行すると、起動時にすべてのモジュールがロードされます。それ以外の場合、モジュールは呼び出されたときにロードされます。そのため、問題のモジュールが、たとえばアプリケーションの監視ツリーによって開始された gen_server である場合は問題ありません。

于 2013-04-04T11:34:53.357 に答える