Explorar el Código

更新 nanosleep 返回值异常

Signed-off-by: zhkag <zhkag@foxmail.com>
zhkag hace 3 años
padre
commit
e3823299a4
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      components/lwp/lwp_syscall.c

+ 4 - 2
components/lwp/lwp_syscall.c

@@ -923,7 +923,8 @@ int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
     if ((ret != -1 || rt_get_errno() == EINTR) && rmtp && lwp_user_accessable((void *)rmtp, sizeof *rmtp))
     {
         lwp_put_to_user(rmtp, (void *)&rmtp_k, sizeof rmtp_k);
-        return -EINTR;
+        if(ret != 0)
+            return -EINTR;
     }
 #else
     if (rmtp)
@@ -3872,7 +3873,8 @@ int sys_clock_nanosleep(clockid_t clk, int flags, const struct timespec *rqtp, s
     if ((ret != -1 || rt_get_errno() == EINTR) && rmtp && lwp_user_accessable((void *)rmtp, sizeof *rmtp))
     {
         lwp_put_to_user(rmtp, (void *)&rmtp_k, sizeof rmtp_k);
-        return -EINTR;
+        if(ret != 0)
+            return -EINTR;
     }
 #else
     if (rmtp)