[squeak-dev] Transcript error when forceUpdate: false (?)

jaromir m at jaromir.net
Mon Jan 25 20:38:26 UTC 2021

Well, I tried deferring the whole Transcript endEntry machinery to the UI
doOneCycle (bypassing the changed: #appendEntryLater mechanism) for
#forceUpdate = false only ... and it seems to avoid the problem!

TranscriptStream >> endEntry

	deferredEntry ifNil: [ false ].    "this is a new instance variable"
	self semaphore critical:[
		self class forceUpdate
			ifTrue: [self changed: #appendEntry; reset]
			ifFalse: [deferredEntry := true].

TranscriptStream >> flushDeferredEntry
	"This is run every UI cycle in doOneCycleNowFor:"

	deferredEntry ifTrue: [
		self class forceUpdate: true.
		self endEntry.
		deferredEntry := false.
		self class forceUpdate: false.

doOneCycleNowFor: aWorld
	"... the whole body remains unchanged except:"
	capturingGesture ifFalse: 
		[aWorld runStepMethods.		
		Transcript flushDeferredEntry.     "this is printing for #forceUpdate =
		self displayWorldSafely: aWorld].

For #forceUpdate = true the endEntry mechanism remains unchanged and failing
as before...

Sent from: http://forum.world.st/Squeak-Dev-f45488.html

More information about the Squeak-dev mailing list