<div dir="ltr">Hi all,<div><br></div><div>In the libuv bindings I am working on there is need for user callbacks. A user registers the callback with a function, and then at an arbitrary point in time later, the callback code is actually ran (started when the user starts the libuv event loop). I had naively thought that I would need to keep a reference to the user callback and then release this reference after the user callback was actually called (because the callback would be used at an arbitrary point in the future and could get gc'd).</div><div><br></div><div>I made an example this morning to test this out, however I cannot get it to fail (ie throw an CallToExpiredClosure).</div><div><br></div><div>Perhaps my assumption is wrong, and I do not have to keep around a reference? Or my test is not testing what I think it is?</div><div><br></div><div>I see similar discussion that doesn't have a clear resolution here: <a href="https://github.com/dbuenzli/tgls/issues/6">https://github.com/dbuenzli/tgls/issues/6</a> and <a href="http://lists.ocaml.org/pipermail/ctypes/2013-December/000028.html">http://lists.ocaml.org/pipermail/ctypes/2013-December/000028.html</a></div><div><br></div><div>My test code is here: <a href="https://github.com/trevorsummerssmith/ocaml-libuv/blob/test-lifecycle/test/test_lifecycle.ml">https://github.com/trevorsummerssmith/ocaml-libuv/blob/test-lifecycle/test/test_lifecycle.ml</a></div><div><br></div><div>Test it: make && make tests # valgrind seems happy with it</div><div><br></div><div>I am running with libuv-1.0.0-rc1 <a href="https://github.com/joyent/libuv/tree/v1.0.0-rc1/">https://github.com/joyent/libuv/tree/v1.0.0-rc1/</a> OCaml 4.0.2.1 and on a Mac 10.9.5</div><div><br></div><div>Thanks!</div><div><br>Trevor</div></div>