pthread_cond_wait解锁附加的互斥锁。源代码?

时间:2012-02-02 12:41:08

标签: c linux pthreads

我知道pthread_cond_wait会解锁附加的互斥锁。我想要找到的是pthread_cond_wait的源代码,并找到解锁互斥锁代码。如果这个问题很愚蠢,那就好了。 :)。我必须下载和检查哪个库。我正在使用Ubuntu。

3 个答案:

答案 0 :(得分:3)

pthread_cond_*函数和pthread_mutex_*函数是NPTL的一部分,NPTL现在是任何现代Linux机器上glibc的一部分。最新版本为glibc-2.11.1,您可以在GNU glibc download site上找到源代码。

答案 1 :(得分:2)

另一种选择是OpenSolaris source;如果你对linux感兴趣,即glibc,@ David Schwartz的答案可能会更“准确”。

答案 2 :(得分:0)

虽然这不是你问题的答案,但是互斥锁解锁的重要方面是必须在 后更新条件变量结构以反映服务员是当下。当标准表示函数“原子地”解锁互斥锁并等待时,这就是标准的含义。否则,将存在相同的竞争条件,就像您在调用pthread_cond_wait之前自己解锁互斥锁一样:另一个线程可以获取互斥锁并在检查谓词后修改谓词所依赖的状态(并发现它为false)但在你打电话给pthread_cond_wait之前。然后你会错过信号并继续等待cond var,也许永远等待。

相关问题