多线程编程指南

将处理程序推送到栈上

使用清理处理程序,可以将状态恢复到与起点一致的状态,其中包括清理已分配的资源和恢复不变量。使用 pthread_cleanup_push(3C)pthread_cleanup_pop(3C) 函数可以管理清理处理程序。

在程序的同一词法域中可以推送和弹出清理处理程序。推送和弹出操作应当始终匹配,否则会生成编译器错误。

pthread_cleanup_push 语法

请使用 pthread_cleanup_push(3C) 将清理处理程序推送到清理栈 (LIFO)。

void pthread_cleanup_push(void(*routine)(void *), void *args);
#include <pthread.h>



/* push the handler "routine" on cleanup stack */

pthread_cleanup_push (routine, arg); 

pthread_cleanup_push 返回值

pthread_cleanup_push() 没有返回值。