Llamada de callback desde el código nativo node.js

Estoy escribiendo un complemento para node.js usando c ++.

aquí algunos fragmentos:

class Client : public node::ObjectWrap, public someObjectObserver { public: void onAsyncMethodEnds() { Local argv[] = { Local::New(String::New("TheString")) }; this->callback->Call(Context::GetCurrent()->Global(), 1, argv); } .... private: static v8::Handle BeInitiator(const v8::Arguments& args) { HandleScope scope; Client* client = ObjectWrap::Unwrap(args.This()); client->someObject->asyncMethod(client, NULL); return scope.Close(Boolean::New(true)); } static v8::Handle SetCallback(const v8::Arguments& args) { HandleScope scope; Client* client = ObjectWrap::Unwrap(args.This()); client->callback = Persistent::New(Handle::Cast(args[0])); return scope.Close(Boolean::New(true)); } 

Necesito guardar una función javascript como callback para llamarla más tarde. La clase Cliente es un observador de otro objeto y la callback de javascript debe llamarse desde onAsyncMethodEnds. Desafortunadamente, cuando llamo a la función “BeInitiator”, recibo un error “Bus error: 10” justo antes de la callback Llamada ()

gracias en consejo

No puedes ->Call desde otro hilo. JavaScript y el nodo son de un solo hilo y el bash de llamar a una función desde otro hilo equivale a intentar ejecutar dos hilos de JS a la vez.

Debería volver a trabajar su código para no hacerlo, o leer en la biblioteca de hilos de libuv . Proporciona uv_async_send que se puede usar para activar la callback en el bucle principal de JS desde un hilo separado.

Hay documentos aquí: http://nikhilm.github.io/uvbook/threads.html