From 4030fbdc1fc649d3b45e761464ae76a50ccbc2dd Mon Sep 17 00:00:00 2001 From: Ivan Chikish Date: Thu, 13 Jul 2023 14:23:47 +0300 Subject: [PATCH] [orbis-kernel] umtx_cv_wait ignore flags if no timeout --- orbis-kernel/src/umtx.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/orbis-kernel/src/umtx.cpp b/orbis-kernel/src/umtx.cpp index 1c7143dd5..fbcb35301 100644 --- a/orbis-kernel/src/umtx.cpp +++ b/orbis-kernel/src/umtx.cpp @@ -277,11 +277,15 @@ orbis::ErrorCode orbis::umtx_cv_wait(Thread *thread, ptr cv, uint flags; if (ErrorCode err = uread(flags, &m->flags); err != ErrorCode{}) return err; - if ((wflags & kCvWaitClockId) != 0) { + if ((wflags & ~(kCvWaitAbsTime | kCvWaitClockId))) { + ORBIS_LOG_FATAL("umtx_cv_wait: UNKNOWN wflags", wflags); + return ErrorCode::INVAL; + } + if ((wflags & kCvWaitClockId) != 0 && ut + 1) { ORBIS_LOG_FATAL("umtx_cv_wait: CLOCK_ID unimplemented", wflags); return ErrorCode::NOSYS; } - if ((wflags & kCvWaitAbsTime) != 0) { + if ((wflags & kCvWaitAbsTime) != 0 && ut + 1) { ORBIS_LOG_FATAL("umtx_cv_wait: ABSTIME unimplemented", wflags); return ErrorCode::NOSYS; }