pthread_mutex_consistent函数用法详解
pthread_mutex_consistent函数简介
- 头文件包含
#include <pthread.h>
- 函数定义
int pthread_mutex_consistent(pthread_mutex_t * mutex );
- 编译链接选项
-pthread
pthread_mutex_consistent函数常见使用错误
- 链接错误
undefined reference to `pthread_mutex_consistent'
解决办法:添加链接选项
-pthread
- 编译错误
warning: implicit declaration of function ‘pthread_mutex_consistent’ [-Wimplicit-function-declaration]
解决办法:包含头文件
#include <pthread.h>
pthread_mutex_consistent函数详细描述
该函数使一个健壮互斥体在处于不一致状态时保持一致。如果互斥体的所有者在持有互斥体时终止,则互斥体可能处于不一致状态,在这种情况下,下一个获得互斥体的所有者将成功,并从对pthread_mutex_lock ()的调用中得到返回值EOWNERDEAD的通知
pthread_mutex_consistent函数返回值
成功后,pthread_mutex_consistent ()返回0。否则,它返回一个正错误号来指示错误的原因。
pthread_mutex_consistent函数错误码
- EINVAL 互斥体要么不健壮,要么不处于不一致状态。
pthread_mutex_consistent函数其他说明
pthread_mutex_consistent ()只是通知实现互斥体保护的状态(共享数据)已经恢复到一致状态,现在可以使用互斥体执行正常操作。在调用pthread_mutex_consistent ()之前,应用程序有责任确保共享数据已恢复到一致状态
在将pthread_mutex_consistent ()添加到POSIX之前,如果定义了_GNU_SOURCE,则glibc定义了以下等效的非标准函数:
int pthread_mutex_consistent(const pthread_mutex_t * mutex );
这个特定于GNU的API,最初出现在glibc2.4中,现在已经过时,不应该在新程序中使用。
pthread_mutex_consistent函数使用举例
参见pthread_mutexattr_setrobust (3)
评论区