[erlang-questions] enif_keep_resource, enif_release_resource and thread safety

Vincent Siliakus <>
Thu Aug 4 10:40:52 CEST 2016


Hi,

Does anyone know if synchronization is needed when one calls
enif_keep_resource in nif functions and enif_release_resource in a nif
background thread? Or in other words: is the ref counting that is used
under the hood thread safe?

I ask this because during some refactoring of code in the LMDB driver I'm
developing at https://github.com/zambal/elmdb I stumbled upon a problem
that might have been caused by unsynchronized calls to these functions.
However,  when I searched github for other code that uses resources , I
couldn't find examples that use synchronization, but that might be because
it's simply not needed in those libraries, so I'm still not sure.

Thanks,
Vincent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160804/1fed5161/attachment.html>


More information about the erlang-questions mailing list