Estoy creando un nodo complemento C++ que se supone que devuelve la llamada a una función js ya que los eventos son activados por algún otro hilo que no está bajo mi control (en realidad es .NET hilo de un dll administrado que uso). Como el mundo JS es de un solo hilo, no puedo simplemente mantener la referencia de la función js y llamarla desde ese hilo que no sea js. Ni siquiera puedo crear los parámetros que quiero pasar a esa función de devolución de llamada en ese hilo.Complemento Node.js C++: múltiples devoluciones de llamada desde diferente hilo
He visto que uv_queue_work
se usa en los casos en los que desea mover el trabajo fuera del subproceso js y una vez terminado, recibe una llamada del subproceso js para hacer lo que necesite hacer, como p. volver a llamar una función js.
Para su posterior consulta, aquí está la firma de esa función:
int uv_queue_work(uv_loop_t* loop, uv_work_t* req, uv_work_cb work_cb,
uv_after_work_cb after_work_cb);
Calling uv_queue_work está muy bien para trabajos puntuales, y que probablemente podría conseguir que me llaman de manera arbitraria a menudo por el encadenamiento de llamadas a uv_queue_work
de after_work_cb
, mientras work_cb
se sincroniza con ese otro hilo, pero me pregunto si no hay una manera más directa de hacerlo.
Como un fn proporcionado por node.js que podría ser llamado directamente por cualquier otro hilo con un puntero fn que apunta al código que se ejecutará en el hilo principal de js en la próxima ocasión. ¿Alguna idea?
de Spot ¡en! Exactamente lo que necesito –