我正在尝试使用pthread API,并且想了解一些东西。
据我了解,以下代码应生成EDEADLK错误代码,但我收到未定义的错误:
mutex lock: : Undefined error: 0
void case3_error_checking_mutex()
{
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr,pthREAD_MUTEX_ERRORCHECK);
pthread_mutex_t mtx;
pthread_mutex_init(&mtx,&attr);
pthread_mutex_lock(&mtx);
if (pthread_mutex_lock(&mtx) != 0) {
perror("mutex lock: ");
return;
}
pthread_mutex_unlock(&mtx);
}
有什么想法吗?
谢谢!
PS:我知道什么是递归互斥,我知道什么是死锁,我知道这是丑陋的代码,等等。请不要对此类内容发表评论。对我来说,这是纯粹的实验性代码,可以更好地了解pthread API的细节。