Cancelability Type
Overview
跟 signal 不同,就算將 cancelability state 設為 PTHREAD_CANCEL_ENABLE,thread 也只有在特定時候才會去檢查有沒有 cancellation request 並且接受
Cancelability type 就是關於此特性的設定
Type
PTHREAD_CANCEL_DEFERRED (default)
延遲取消。thread 在收到 cancellation request 並不會立即接受,而是會繼續執行,直到遇到一個 cancellation point 才會接受請求並且終止
PTHREAD_CANCEL_ASYNCHRONOUS
跟 signal 一樣一收到 cancellation request 就直接取消
這超危險!!!(詳見 cancellation point)
pthread_setcanceltype
Function Prototype
int pthread_setcanceltype(int type, int *oldtype);Function
設定 cancelability type