pthread-2.9.1有关tsd的bug

版权声明: https://blog.csdn.net/henysugar/article/details/84680484

问题现象

多线程如果使用pthread来实现tsd,在pthread_key_delete的时候卡死。

原因

pthread_key_delete内部代码有错,lock一次后多次unlock,导致卡住。

... 
ptw32_mcs_lock_acquire (&(key->keyLock), &keyLock);

while{

...

// 以下这行不对:

  ptw32_mcs_lock_release(&keyLock); 

}
...

解决办法

应该改成这样:

...
ptw32_mcs_lock_acquire (&(key->keyLock), &keyLock);

while{

...

}
ptw32_mcs_lock_release(&keyLock); 
...

本文结束。

猜你喜欢

转载自blog.csdn.net/henysugar/article/details/84680484