<div dir="ltr">The presence of the resource makes sense.  But why the special close/stop methods?  Is the existing destructor insufficient in some way?<div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 7, 2016 at 12:38 PM Sverker Eriksson <<a href="mailto:sverker.eriksson@ericsson.com">sverker.eriksson@ericsson.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
<br class="gmail_msg">
On 12/07/2016 06:43 PM, Daniel Goertzen wrote:<br class="gmail_msg">
> I'm excited to see progress in the area, but I am struggling to understand<br class="gmail_msg">
> a few things in the enif_select API:<br class="gmail_msg">
><br class="gmail_msg">
> 1. Why are the resource extensions required? Couldn't a 'stop' message be<br class="gmail_msg">
> sent to the calling process which could then call a plain old NIF to shut<br class="gmail_msg">
> things down?<br class="gmail_msg">
<br class="gmail_msg">
The idea was to also be able to handle cases when the process<br class="gmail_msg">
is no longer alive. For example, if it crashes due to some error.<br class="gmail_msg">
The stop function can then be called by the VM to do the cleanup<br class="gmail_msg">
and avoid leaking file descriptors.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
> 2. Does the ref parameter have to be a ref?  An arbitrary term would be<br class="gmail_msg">
> useful.<br class="gmail_msg">
The current implementation only works for local refs and<br class="gmail_msg">
immediate terms (atoms, small integers, local pids and ports).<br class="gmail_msg">
I thought I should keep it simple to begin with, but it would be<br class="gmail_msg">
no problem to accept other terms. Just some more code to<br class="gmail_msg">
handle the dynamic allocation as the terms need to be copied<br class="gmail_msg">
from and to the process heap.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
/Sverker<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>