2012-10-22 38 views
4

我想查找是否爲一個線程,pthread_cancel已被調用或不。如何查找pthread是否有掛起取消請求

我不想使用一些表並保持這一點。有沒有任何庫函數可用於此?我不想取消線程使用取消點函數取消線程,如果有任何掛起的取消請求,我只是想知道是否有任何未決的取消請求。

+1

你讀過pthreads上的manpages嗎? – amn

+0

是的,但我不能得到所需的功能 – gawaskar

+0

從我在那裏收集的,你要麼使用取消點或立即取消策略,其中你的線程是簡單地取消,沒有線程功能的合作。這是從http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_cancel.3.html – amn

回答

0

即使您致電pthread_cancel,它也不會立即執行。處理器需要自己的時間來取消線程。但是,這裏只是提到:不推薦使用異步取消或立即取消。在使用pthread_setcanceltype()作爲PTHREAD_CANCEL_ASYNCHRONOUS時,我遇到了在取消期間應用程序崩潰的問題。我真的找不到原因。 據我所知,甚至在調試崩潰場景時我也搜索了很多相同的東西,但我們沒有方法來確認線程在什麼時候被取消。