Tiny fix

goran at krampe.se goran at krampe.se
Mon Jul 31 07:47:54 UTC 2006


Hi Chris and all!

When bulk loading 40000 objects I discovered this small bug - the fix is
the inserted line "self resetLastClean" below. Obviously if we decide to
clean after 30 seconds - then we need to reset lastClean. Otherwise it
will start cleaning like a mad man after 30 seconds, which I of course
experienced. :)

Hmmm, I just noticed Chris has discovered this already.

We have also experienced another problem on and off - but I haven't pin
pointed it yet and it only appears when meddling around in development
(halts and debuggers etc). The effect is that Squeak suddenly feel
sluggish - and yes, behold - Magma is creating Processes like a machine
gun. Running this snippet in fast sequence 5-10 times usually cleans
them up enough to get it to stop:

	(Process allInstances select: [:p | p isSuspended]) do: [:pp |
		pp terminate; install: nil]

It appears to be some issue in the proxy stuff. If noone else has seen
it I can try to find the suspect method.

regards, Göran

shouldRemoveGarbageCollectedEntries
	| count size |
	Time millisecondClockValue - lastClean > 30000 ifFalse: [ ^ false ].
	self resetLastClean.
	size := count := 0.
	objects keysAndValuesDo: 
		[ : eachOid : eachObject | 
		size := size + 1.
		eachObject ifNotNil: [ count := count + 1 ] ].
	^ size > (count * 2)


More information about the Magma mailing list