It appears that uv_async_send(uv_async_t*) events triggered from VA::Node::Triggerable objects are being scheduled but not being run until something else triggers uv's default loop.
This problem affects (delays) the fulfillment of native (C++) promises (see VA::Node::Resolver) returned by Vision evaluation requests.
Another code path implemented in VA::Node::Process also generates uv_aync_t events. That code path is used to schedule callbacks and object reclamation processing but does not appear to have this problem.
It appears that
uv_async_send(uv_async_t*)
events triggered fromVA::Node::Triggerable
objects are being scheduled but not being run until something else triggers uv's default loop.This problem affects (delays) the fulfillment of native (C++) promises (see
VA::Node::Resolver
) returned by Vision evaluation requests.Another code path implemented in
VA::Node::Process
also generatesuv_aync_t
events. That code path is used to schedule callbacks and object reclamation processing but does not appear to have this problem.