item := nil; while true do begin item := nil; with ResultList.LockList do begin try for i := 0 to Count-1 do begin pok := Items[i]; if pok^.checking = false then begin item := pok; break end end; finally ResultList.UnlockList; end end; if item <> nil then CheckAvailability; end;