From d996630f71a4cc44df48995b550d6eb8c6b400e4 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Sat, 4 Jan 2025 22:59:05 +0300 Subject: [PATCH] + --- sys/kern/kern_rwlock.pas | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_rwlock.pas b/sys/kern/kern_rwlock.pas index c98b672a..a62fa20a 100644 --- a/sys/kern/kern_rwlock.pas +++ b/sys/kern/kern_rwlock.pas @@ -233,10 +233,14 @@ begin end; } +{$IF defined(ALT_SRW1) or defined(ALT_SRW2)} + function RtlWaitOnAddress (addr,cmp:Pointer;size:QWORD;timeout:PLARGE_INTEGER):DWORD; stdcall; external 'ntdll'; procedure RtlWakeAddressAll (addr:Pointer); stdcall; external 'ntdll'; procedure RtlWakeAddressSingle(addr:Pointer); stdcall; external 'ntdll'; +{$ENDIF} + {$IFDEF ALT_SRW1} type @@ -344,7 +348,7 @@ begin Result:=TRUE; end else begin - Result:=FALSE; + Exit(FALSE); end; until (System.InterlockedCompareExchange(u.l^,new.l,old.l) = old.l); end; @@ -366,7 +370,7 @@ begin Result:=TRUE; end else begin - Result:=FALSE; + Exit(FALSE); end; until (System.InterlockedCompareExchange(u.l^,new.l,old.l) = old.l); end;