[erlang-questions] Regarding the life cycle of ERL_NIF_TERM

Xiaopong Tran <>
Thu Jun 7 11:06:28 CEST 2012


Hi,

I have a question regarding the life cycle of ERL_NIF_TERM. According to 
the Erlang document http://www.erlang.org/doc/man/erl_nif.html:

"All ERL_NIF_TERM's belong to an environment (ErlNifEnv). A term can not 
be destructed individually, it is valid until its environment is 
destructed."

And the description regarding the ErlNifEnv:

"A process bound environment is passed as the first argument to all 
NIFs. All function arguments passed to a NIF will belong to that 
environment."

Could someone clarify what that means exactly, in terms of the
ERL_NIF_TERM life cycle?

So, in this case, the environment is process bound. Does this
mean that, all ERL_NIF_TERM passed in a parameters to NIF function,
and the ERL_NIF_TERM return value, will never get GC, as long
as the process is running?

Cheers,


Xiaopong



More information about the erlang-questions mailing list