1 つの Erlang プロセスでのみ使用される Erlang C NIF を作成しています。ポインターの配列を保持する構造体を作成したいと考えています。これは、プロセスの NIF 呼び出しの間に存在する必要があります。
私が洞察を必要としているのは、Erlang NIF 側からこのアプローチを行う適切な方法です。すべての関数の外側に構造体を記述して、すべての人がアクセスできるようにすることを考えています。NIF への 1 回の呼び出しで作成し、戻って NIF への別の呼び出しで使用すると、問題なく動作するようです。
これは、プロセスがスケジューリング スレッドに対してローカルにとどまっているため、メモリ内の構造体と基になる配列を移動する必要がないためではないかと心配しています。
関数内から erlang:memalloc を使用し、グローバルをすべて一緒に回避するべきですか、それともグローバル構造体をそのまま使用するべきですか?
すべてのデータを含む単一の配列へのポインターを返す可能性がありますか?