Are NIF resources meant to be destroyed immediately on GC?

José Valim jose.valim@REDACTED
Tue Nov 24 19:34:49 CET 2020


Thanks everyone for the replies, I have a couple of things to try out now.

On Tue, Nov 24, 2020 at 7:16 PM Sean Hinde <sean.hinde@REDACTED> wrote:

>
>
> On 23 Nov 2020, at 23:16, Sverker Eriksson <sverker.eriksson@REDACTED>
> wrote:
>
> Prior to OTP 22.0 resource destructors were called directly by the thread
> that happened to decrease the reference counter down to zero.
> From OTP 22.0 resource destructors are scheduled. This in order to ensure
> a stable known execution context for the destructor callback. So it may not
> have executed when erlang:garbage_collect  returns, but will very soon
> (unless you have a very overloaded system or a bug preventing ref counter
> from reaching zero).
>
> /Sverker, Erlang/OTP
>
>
>
> This a really nice change. It opens the door to resource destructors being
> safe for closing external resources like database handles that might take a
> while.
>
> Super cool!
>
> Sean
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20201124/f5da3b02/attachment.htm>


More information about the erlang-questions mailing list