1. 程式人生 > >strongswan——執行緒處理函式

strongswan——執行緒處理函式

1. 將函式壓入當前執行緒的清理處理程式棧中。 每當執行緒被取消、退出或使用TRUE作為執行引數呼叫thread_cleanup_pop函式時都會呼叫回撥函式cleanup。

void thread_cleanup_push(thread_cleanup_t cleanup, void *arg);

其中入參cleanup為函式指標,定義如下:

typedef void (*thread_cleanup_t)(void *arg);

 

2. 從當前執行緒的清理處理程式棧中刪除棧頂函式,並可以選擇執行它。

void thread_cleanup_pop(bool execute);

 

3. 將所有註冊的清理處理程式彈出並執行,彈出順序與註冊順序相反。此函式僅用於非常特殊的目的,其中呼叫者確切地知道已經推送了哪些清理處理程式。對於常規使用,呼叫者應該精確地知道通過使用thread_cleanup_push()壓入的處理程式數量,並通過呼叫thread_cleanup_pop()將相同數量的處理程式彈出。

void thread_cleanup_popall();