Зачем использовать
void *enif_alloc_resource(ErlNifResourceType* type, unsigned size)
в отличие от
void *enif_alloc(size_t size)
при попытке выделить память из Erlang C NIF?
Ссылка не уточняет, почему.
Зачем использовать
void *enif_alloc_resource(ErlNifResourceType* type, unsigned size)
в отличие от
void *enif_alloc(size_t size)
при попытке выделить память из Erlang C NIF?
Ссылка не уточняет, почему.
enif_alloc_resource используется для создания ресурсов, которые виртуальная машина собирает как мусор, когда они больше не используются. enif_alloc работает точно так же, как malloc, только использует конкретную реализацию виртуальной машины Erlang, а не malloc операционной системы. Взгляните на документацию по ErlNifResourceType и функциям, которые его используют, чтобы узнать больше.