@@ -8456,30 +8456,34 @@ SpurMemoryManager >> markStack: anOop [
8456
8456
8457
8457
{ #category : #'gc - global' }
8458
8458
SpurMemoryManager >> markWeaklingsAndMarkAndFireEphemerons [
8459
+
8459
8460
" After the initial scan- mark is complete ephemerons can be processed.
8460
8461
Weaklings have accumulated on the weaklingStack, but more may be
8461
8462
uncovered during ephemeron processing. So trace the strong slots
8462
8463
of the weaklings, and as ephemerons are processed ensure any newly
8463
8464
reached weaklings are also traced."
8464
- | numTracedWeaklings |
8465
+
8465
8466
<inline: false>
8467
+ | numTracedWeaklings |
8466
8468
numTracedWeaklings := 0.
8467
- [coInterpreter markAndTraceUntracedReachableStackPages.
8468
- coInterpreter markAndTraceMachineCodeOfMarkedMethods.
8469
- " Make sure all reached weaklings have their strong slots traced before firing ephemerons..."
8470
- [numTracedWeaklings := self markAndTraceWeaklingsFrom: numTracedWeaklings.
8471
- (self sizeOfObjStack: weaklingStack) > numTracedWeaklings] whileTrue.
8472
- self noUnscannedEphemerons ifTrue:
8473
- [coInterpreter
8469
+ [
8470
+ coInterpreter markAndTraceUntracedReachableStackPages.
8471
+ coInterpreter markAndTraceMachineCodeOfMarkedMethods.
8472
+ " Make sure all reached weaklings have their strong slots traced before firing ephemerons..."
8473
+ [
8474
+ numTracedWeaklings := self markAndTraceWeaklingsFrom:
8475
+ numTracedWeaklings.
8476
+ (self sizeOfObjStack: weaklingStack) > numTracedWeaklings ] whileTrue.
8477
+ true ifTrue: [
8478
+ coInterpreter
8474
8479
markAndTraceUntracedReachableStackPages;
8475
- markAndTraceMachineCodeOfMarkedMethods;
8480
+ markAndTraceMachineCodeOfMarkedMethods;
8476
8481
freeUntracedStackPages;
8477
8482
freeUnmarkedMachineCode.
8478
- ^self].
8479
- self markInactiveEphemerons ifFalse:
8480
- [self fireAllUnscannedEphemerons].
8481
- self markAllUnscannedEphemerons]
8482
- repeat
8483
+ ^ self ].
8484
+ self markInactiveEphemerons ifFalse: [
8485
+ self fireAllUnscannedEphemerons ].
8486
+ self markAllUnscannedEphemerons ] repeat
8483
8487
]
8484
8488
8485
8489
{ #category : #'header format' }
0 commit comments