[lwp] 修复错误码误用 (#7906)

This commit is contained in:
zhkag 2023-08-03 15:34:42 +08:00 committed by GitHub
parent a6fcb4f8a1
commit d5c9dc09a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -189,7 +189,7 @@ static int _pthread_mutex_init(void *umutex)
if (lock_ret != RT_EOK) if (lock_ret != RT_EOK)
{ {
rt_set_errno(EAGAIN); rt_set_errno(EAGAIN);
return -EINTR; return -EAGAIN;
} }
lwp = lwp_self(); lwp = lwp_self();
@ -262,7 +262,7 @@ static int _pthread_mutex_lock_timeout(void *umutex, struct timespec *timeout)
lock_ret = rt_mutex_take_interruptible(&_pmutex_lock, RT_WAITING_FOREVER); lock_ret = rt_mutex_take_interruptible(&_pmutex_lock, RT_WAITING_FOREVER);
if (lock_ret != RT_EOK) if (lock_ret != RT_EOK)
{ {
rt_set_errno(EAGAIN); rt_set_errno(EINTR);
return -EINTR; return -EINTR;
} }
@ -323,6 +323,11 @@ static int _pthread_mutex_lock_timeout(void *umutex, struct timespec *timeout)
return -ETIMEDOUT; return -ETIMEDOUT;
} }
} }
else if (lock_ret == -RT_EINTR)
{
rt_set_errno(EINTR);
return -EINTR;
}
else else
{ {
rt_set_errno(EAGAIN); rt_set_errno(EAGAIN);
@ -343,7 +348,7 @@ static int _pthread_mutex_unlock(void *umutex)
if (lock_ret != RT_EOK) if (lock_ret != RT_EOK)
{ {
rt_set_errno(EAGAIN); rt_set_errno(EAGAIN);
return -EINTR; return -EAGAIN;
} }
lwp = lwp_self(); lwp = lwp_self();
@ -385,7 +390,7 @@ static int _pthread_mutex_unlock(void *umutex)
if (lock_ret != RT_EOK) if (lock_ret != RT_EOK)
{ {
rt_set_errno(EPERM); rt_set_errno(EPERM);
return -EAGAIN; return -EPERM;
} }
return 0; return 0;
} }
@ -400,7 +405,7 @@ static int _pthread_mutex_destroy(void *umutex)
if (lock_ret != RT_EOK) if (lock_ret != RT_EOK)
{ {
rt_set_errno(EAGAIN); rt_set_errno(EAGAIN);
return -EINTR; return -EAGAIN;
} }
lwp = lwp_self(); lwp = lwp_self();