[erlang-questions] enif_keep_resource, enif_release_resource and thread safety

Daniel Goertzen <>
Sat Aug 6 04:16:56 CEST 2016


Those functions have their own synchronization so no need to add your own.
The usage case you describe sound fine.

On Thu, Aug 4, 2016, 03:41 Vincent Siliakus <> wrote:

> 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
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160806/77b9e4e1/attachment.html>


More information about the erlang-questions mailing list