소스 검색

* WebAssembly: fixed SysUtils.sleep() with large timeouts causing incorrect time
delay, due to arithmetic overflow

Nikolay Nikolov 1 년 전
부모
커밋
ccbc28dd85
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      rtl/wasi/sysutils.pp

+ 1 - 1
rtl/wasi/sysutils.pp

@@ -760,7 +760,7 @@ begin
   FillChar(subscription,SizeOf(subscription),0);
   subscription.u.tag:=__WASI_EVENTTYPE_CLOCK;
   subscription.u.u.clock.id:=__WASI_CLOCKID_MONOTONIC;
-  subscription.u.u.clock.timeout:=MilliSeconds*1000000;
+  subscription.u.u.clock.timeout:=__wasi_timestamp_t(MilliSeconds)*1000000;
   subscription.u.u.clock.precision:=1000000;
   subscription.u.u.clock.flags:=0;  { timeout value is relative }
   __wasi_poll_oneoff(@subscription,@event,1,@nevents);