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