Marcel Taeumel uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-mt.1420.mcz
==================== Summary ====================
Name: System-mt.1420 Author: mt Time: 10 August 2023, 10:29:48.325968 am UUID: b9808160-125f-0241-9b23-b20b33273bf2 Ancestors: System-mt.1419
For low-space warnings, make preference #logDebuggerStackToFile work again.
=============== Diff against System-mt.1419 ===============
Item was changed: ----- Method: SmalltalkImage>>lowSpaceWatcher (in category 'memory space') ----- lowSpaceWatcher "Wait until the low space semaphore is signalled, then take appropriate actions."
| free preemptedProcess | self garbageCollectMost <= self lowSpaceThreshold ifTrue: [self garbageCollect <= self lowSpaceThreshold ifTrue: ["free space must be above threshold before starting low space watcher" ^ Beeper beep]].
Smalltalk specialObjectsArray at: 23 put: nil. "process causing low space will be saved here" LowSpaceSemaphore := Semaphore new. self primLowSpaceSemaphore: LowSpaceSemaphore. self primSignalAtBytesLeft: self lowSpaceThreshold. "enable low space interrupts"
LowSpaceSemaphore wait. "wait for a low space condition..."
self primSignalAtBytesLeft: 0. "disable low space interrupts" self primLowSpaceSemaphore: nil. LowSpaceProcess := nil.
"The process that was active at the time of the low space interrupt." + preemptedProcess := (Smalltalk specialObjectsArray at: 23) + ifNil: [Processor preemptedProcess "if in-image signal of OutOfMemory"]. - preemptedProcess := Smalltalk specialObjectsArray at: 23. Smalltalk specialObjectsArray at: 23 put: nil.
"Note: user now unprotected until the low space watcher is re-installed"
self memoryHogs isEmpty ifFalse: [free := self bytesLeft. self memoryHogs do: [ :hog | hog freeSomeSpace ]. self bytesLeft > free ifTrue: [ ^ self installLowSpaceWatcher ]].
Preferences logDebuggerStackToFile ifTrue: [ self logError: 'Space is low' inContext: preemptedProcess suspendedContext to: 'LowSpaceDebug.log']. Project current interruptName: 'Space is low' message: self lowSpaceChoices preemptedProcess: preemptedProcess !
packages@lists.squeakfoundation.org