我正在编写一个 Erlang C NIF,它只会被一个 Erlang 进程使用。我想创建一个包含指针数组的结构。我需要它存在于进程对 NIF 的调用之间。
我需要了解的是从 Erlang NIF 方面执行此方法的正确方法。我正在考虑在所有函数之外编写一个结构,以便所有人都可以访问它。当我在对 NIF 的一次调用中创建它,然后返回并在对 NIF 的另一次调用中使用它时,它似乎工作得很好。
我担心这可能是因为进程停留在调度线程的本地,因此不必在内存中移动结构和底层数组。
我应该在函数中使用 erlang:memalloc 并避免一起使用全局变量,还是保持原样使用全局结构?
可能返回一个指向包含我所有数据的单个数组的指针?