[squeak-dev] Priority of WeakArray finalizationProcess

Levente Uzonyi leves at elte.hu
Sun Jun 13 12:46:59 UTC 2010


On Sun, 13 Jun 2010, Joachim Geidel wrote:

> Am 12.06.10 21:47 schrieb Levente Uzonyi:
>> On Sat, 12 Jun 2010, Joachim Geidel wrote:
>>> I am not sure if changing the priority of the finalizationProcess could
>>> possibly break something, and I also do not yet understand why changing the
>>> priority makes such a big difference both in Squeak and Pharo.
>>
>> I think normal processes (with priority 40) could starve the finalization
>> process if it's priority were <= 40 (#systemBackgroundPriority is 20).
>
> That's true, I hadn't thought of that.
>
>>> How should this issue be handled? Should I add this as issues to the bug
>>> tracking tools for Pharo and Squeak respectively?
>>
>> I uploaded a fix to the Inbox: Collections-ul.362. If you're using a Trunk
>> image, just update it and load this package to your image. If you're using
>> a stock 4.1 image, then the easiest way to get the fix, is to add the
>> following line to the end of WeakKeyDictionary >> #finalizeValues
>>
>> cleanUpAfterRemove ifTrue: [ self fixCollisionsFrom: array size ]
>>
>> If you have the time, please check if this fixes the issue for Squeak.
>
> Unfortunately, this doesn't help with the deadlock issue.

That's bad news. I tried to start the JVM again with the following 
snippet:

| jvmSettings |
JNIPortJNIInterface libraryFile: 'C:\Program 
Files\Java\jre6\bin\client\jvm.dll'.
  jvmSettings := (JVMSettings new)
 			name: 'JVM with ghost class generation';
 			yourself.
  jvmSettings usesGhosts: true.
  jvmSettings jniPortSettings useJNIHelperLibrary: false.
  jvmSettings runtimeSettings classpath: 
'.;C:\Users\Levi\Desktop\SQUEAK\Squeak4.1-win32\JNIPort.jar;C:\Users\Levi\Desktop\SQUEAK\Squeak4.1-win32\JNIPort-Tests.jar'.
  Cursor execute showWhile: [JVM newWithSettings: jvmSettings].

But it crashes:

Current byte code: 98
Primitive index: 1060

Loaded plugins:
 	C:\Program Files\Java\jre6\bin\client\jvm.dll
 	IA32ABI 1 May 2010 (e)
 	LocalePlugin 29 April 2010 (i)
 	B2DPlugin 29 April 2010 (i)
 	BitBltPlugin 29 April 2010 (i)
 	SecurityPlugin 29 April 2010 (i)
 	FilePlugin 29 April 2010 (i)
 	LargeIntegers v1.5 29 April 2010 (i)
 	MiscPrimitivePlugin 29 April 2010 (i)

The Smalltalk Stack:
289028824 JNIVTableMethod>call:
289027948 JNIPortVTableClient>call:withArguments:
289027828 JNIPortVTableClient>call:with:with:
289027736 JNIPortJNIEnv>EnsureLocalCapacity_capacity:
289027644 JVM>initializeLocalCapacity
288899024 JVM>initializeFromSettings:
288898932 JVM class>newWithSettings:
288898672 UndefinedObject>?
288898580 BlockClosure>ensure:
288898488 Cursor>showWhile:
288897964 UndefinedObject>?
288890960 Compiler>evaluate:in:to:notifying:ifFail:logged:
288890868 TextEditor>evaluateSelection
288890776 BlockClosure>on:do:
288890684 TextEditor>evaluateSelection
288890592 TextEditor>doIt

Any ideas how I could start it without crashing?


Levente

>
> Cheers,
> Joachim Geidel
>
>
>
>



More information about the Squeak-dev mailing list