Are NIF resources meant to be destroyed immediately on GC?

Sean Hinde sean.hinde@REDACTED
Tue Nov 24 19:15:58 CET 2020

> 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!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the erlang-questions mailing list