evaluatorNew()只是创建一个新的Evaluator()对象,按照Java端的描述创建一个新的CPtr()类对象,将我们的Evaluator()对象的指针分配给CPtr的'peer‘成员,然后返回新的()下面是gdb单步执行上面的JNI函数的转储:
0x80805258 in Java_com_starlon_libscriptable_UtilsEvaluator_evaluatorNew
TO FILE HERE }} pthread_mutex_unlock(_lock);三个问题:
这里的代码不清楚,但是daemon()和pushNewTask()都使用相同的pthread_mutex_t对象,,这意味着几个函数被同一个pthread_mutex_lock锁定了?也许只有一个线程可以访问其中的任何一个?什么时候使用不同的