RTThread中POSIX兼容层里自旋锁的加锁实现好像不太对。如代码所示:
int pthread_spin_lock (pthread_spinlock_t *lock)
{
if (!lock)
return EINVAL;
while (!(lock->lock))
{
lock->lock = 1;
}
return 0;
}
如果已经加锁(lock等于1),不是应该while死等吗?但是代码中应该是返回0了。
不知道是不是我理解有问题,请各位大侠指正,谢谢。
更多回帖