From 61bfabdd8c9173c4e4de822197b8fd29ec3e2100 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:10:56 +0300 Subject: [PATCH] + --- sys/kern/kern_hazard_pointer.pas | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/kern/kern_hazard_pointer.pas b/sys/kern/kern_hazard_pointer.pas index 154a709b..d82a0099 100644 --- a/sys/kern/kern_hazard_pointer.pas +++ b/sys/kern/kern_hazard_pointer.pas @@ -99,6 +99,8 @@ type t_scan_mode=(smLazy,smLazyOne,smForce); function Scan(mode:t_scan_mode):Pointer; +label + _again; var p_set :TPointerSet; p_node:p_pointer_node; @@ -109,6 +111,8 @@ var begin Result:=nil; + _again: + r_node:=LIST_FIRST(@rlist); if (r_node=nil) then Exit; @@ -183,6 +187,12 @@ begin // p_node:=p_set.Min; end; + + if (mode=smForce) and + (LIST_FIRST(@rlist)<>nil) then + begin + goto _again; + end; end; Procedure Retire(P:Pointer;FuncFree:TGuard.TFuncFree);