Tiny fix

Chris Muller chris at funkyobjects.org
Mon Jul 31 14:43:42 UTC 2006


Hi Göran, I guess you and I were finally affected by the same bug at
the same time (resetLastClean), thanks and let me know what other
things you find.

As for the machine-gun Processes, my guess is you are running into the
"non-debuggerable situation" I ran into and asked on Squeak-dev about
18-months ago:

http://lists.squeakfoundation.org/pipermail/squeak-dev/2005-January/087592.html

There were a couple of suggestions in this thread that may help you
track down the root cause of this problem.

Thanks for letting me know though, and if you find out more
information, please let me know and we'll get it fixed!

 - Chris


--- goran at krampe.se wrote:

> 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)
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
> 
> 



More information about the Magma mailing list