strongswan——线程处理函数

Posted collapsar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

 

以上是关于strongswan——线程处理函数的主要内容,如果未能解决你的问题,请参考以下文章

block的是发送信号的线程,又不是处理槽函数的线程

linux 多线程信号处理总结

线程退出时执行函数,处理资源

一旦第一组工作线程完成处理,我如何使用 AutoResetEventHandler 向主线程函数发出信号以再次启动线程

boost 多线程异步处理例子

Delphi多线程怎么处理?