thread_info returns MACH_SEND_INVALID_DEST 而不是 KERN_SUCCESS

thread_info returns MACH_SEND_INVALID_DEST instead of KERN_SUCCESS

现在 return 调用 thread_info 而不是 KERN_SUCCESS,我还不明白是什么导致了这种新情况。

这个 return 值的原因可能是什么。当在 NSOperation 中调用时,我传递了从 mach_thread_self() 获得的有效值作为 thread_act_t (即第一个参数)。在调用 thread_info() 时,操作可能已经完成,但它的 NSOperationQueue 仍然保留。是不是NSOperation可能在调用时已经不存在的线程上执行了?

基本上我想根据线程的用户和系统时间找出操作花费了多长时间。该操作在其尾部调用异步服务,thread_info() 从该服务的完成处理程序调用。

我现在 waitNSOperationNSCondition (在它调用异步服务之后,即在它的最后)和 signal 它在完成处理程序。这似乎已经解决了问题。