1
我正在做一些与uv_queue_work在一个node.js c + +插件并行工作。困难node.js + libuv + v8错误
一切工作正常,直到我试图从完整的方法回调JS。
我得到:CHECK(thread_local_top() - > TryCatchHandler()== that)失败。
任何指针可能会导致此?
我使用下面的代码回调:
//Get emit method from JS object and check !IsEmpty and IsFunction
v8::TryCatch tc;
emit->Call(pxy,1,argv); // The error happens in this statement.
if (tc.HasCaught()){
//Some handler code
}
对我来说就像你试图从另一个线程调用回调。你能发布一些更多的代码,比如你如何使用uv_queue_work? –
这是我的第一个想法,我有以下运行的实用程序方法,据我了解,如果不是在V8线程应该返回false。 'bool Util :: V8Thread(){ return v8 :: Isolation :: GetCurrent()!= NULL; };' 我正在使用以下来启动进程: uv_queue_work(循环,接力棒,工人,WorkerComplete); 错误发生在“WorkerComplete “ –
断言表明堆栈的try catch处理程序不知何故变得不平衡。很难猜测为什么没有看到更多的代码或至少从gdb的堆栈跟踪。 –