mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-21 01:52:50 +02:00
Remove HeapInc.gs.varOS.
This commit is contained in:
parent
f23dbc2ecb
commit
6473bc1e82
@ -455,9 +455,6 @@ type
|
||||
{$ifdef FPC_HAS_FEATURE_THREADING}
|
||||
lock: TRTLCriticalSection;
|
||||
lockUse: int32;
|
||||
|
||||
{ Data from dead threads (“orphaned”), protected by gs.lock. }
|
||||
varOS: pVarOSChunk;
|
||||
{$ifndef HAS_SYSOSFREE}
|
||||
freeOS: FreeOSChunkList;
|
||||
{$endif not HAS_SYSOSFREE}
|
||||
@ -1464,7 +1461,7 @@ type
|
||||
procedure HeapInc.ThreadState.Orphan;
|
||||
var
|
||||
arena: pFixedArena;
|
||||
vOs, nextVOs, lastVOs: pVarOSChunk;
|
||||
vOs: pVarOSChunk;
|
||||
{$ifndef HAS_SYSOSFREE}
|
||||
lastFree, nextFree: pFreeOSChunk;
|
||||
{$endif not HAS_SYSOSFREE}
|
||||
@ -1496,20 +1493,11 @@ type
|
||||
gs.freeOS.first := freeOS.first;
|
||||
end;
|
||||
{$endif not HAS_SYSOSFREE}
|
||||
{ Prepend varOS to gs.varOS. }
|
||||
vOs := varOS;
|
||||
if Assigned(vOs) then
|
||||
while Assigned(vOs) do
|
||||
begin
|
||||
nextVOs := gs.varOS;
|
||||
gs.varOS := vOs;
|
||||
repeat
|
||||
lastVOs := vOs;
|
||||
ChangeThreadState(vOs, nil);
|
||||
vOs := vOs^.next;
|
||||
until not Assigned(vOs);
|
||||
lastVOs^.next := nextVOs;
|
||||
if Assigned(nextVOs) then
|
||||
nextVOs^.prev := lastVOs;
|
||||
ChangeThreadState(vOs, nil);
|
||||
vOs := vOs^.next;
|
||||
end;
|
||||
if gs.lockUse > 0 then
|
||||
LeaveCriticalSection(gs.lock);
|
||||
@ -1550,23 +1538,15 @@ type
|
||||
var
|
||||
prevSize, statv: SizeUint;
|
||||
h: uint32;
|
||||
vOs, osPrev, osNext: pVarOSChunk;
|
||||
vOs, osNext: pVarOSChunk;
|
||||
begin
|
||||
repeat
|
||||
prevSize := pVarHeader(p - VarHeaderSize)^.prevSize;
|
||||
dec(p, prevSize);
|
||||
until prevSize = 0;
|
||||
|
||||
{ Move OS chunk from gs.varOS to varOS. }
|
||||
{ Add OS chunk to varOS. }
|
||||
vOs := p - (VarOSChunkDataOffset + VarHeaderSize);
|
||||
osPrev := vOs^.prev;
|
||||
osNext := vOs^.next;
|
||||
if Assigned(osPrev) then
|
||||
osPrev^.next := osNext
|
||||
else
|
||||
gs.varOS := osNext;
|
||||
if Assigned(osNext) then
|
||||
osNext^.prev := osPrev;
|
||||
vOs^.prev := nil;
|
||||
osNext := varOS;
|
||||
vOs^.next := osNext;
|
||||
|
Loading…
Reference in New Issue
Block a user