浏览代码

* fixed conversion between milliseconds and nanoseconds in LockMutexTimeoutNoWait and LockMutexTimeoutWait

Nikolay Nikolov 1 年之前
父节点
当前提交
1a93cad4f3
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      rtl/wasi/wasmmutex.inc

+ 8 - 2
rtl/wasi/wasmmutex.inc

@@ -74,7 +74,10 @@ Var
 begin
   {$IFDEF DEBUGWASMTHREADS}DebugWriteln('LockMutexTimeoutNoWait('+IntToStr(m.locked)+','+intToStr(aTimeOutMs)+')');{$ENDIF}
   Res:=lmrNone;
-  EndTime:=GetClockTime+aTimeOutMS*1000;
+  if aTimeOutMS<>-1 then
+    EndTime:=GetClockTime+aTimeOutMS*1000000
+  else
+    EndTime:=0;
   MyThread:=GetSelfThread;
   {$IFDEF DEBUGWASMTHREADS}DebugWriteln('LockMutexTimeoutNoWait: entering loop');{$ENDIF}
   Repeat
@@ -106,7 +109,10 @@ begin
   {$IFDEF DEBUGWASMTHREADS}DebugWriteln('LockMutexTimeoutWait('+IntToStr(m.locked)+','+intToStr(aTimeOutMs)+')');{$ENDIF}
   Res:=lmrNone;
   MyThread:=GetSelfThread;
-  EndTime:=GetClockTime+aTimeOutMS*1000;
+  if aTimeOutMS<>-1 then
+    EndTime:=GetClockTime+aTimeOutMS*1000000
+  else
+    EndTime:=0;
   InterLockedIncrement(M.Waiters);
   {$IFDEF DEBUGWASMTHREADS}DebugWriteln('LockMutexTimeoutWait: entering loop');{$ENDIF}
   Repeat