[squeak-dev] Re: The broken user interrupt, or the saga of 100000
arning315 at comcast.net
Fri Dec 23 15:22:25 UTC 2011
While I was a little suspicious about the close placement of the init
and test, my observation was from a 4.2 image with no changes in this
area. Just curious what image/vm implements this *new* finalization.
On 12/23/11 10:13 AM, David T. Lewis wrote:
> On Fri, Dec 23, 2011 at 07:39:41AM -0500, Bob Arning wrote:
>> I've seen suspicious behavior (tough time interrupting and lots of
>> finalization in MessageTally reports) in my 4.2 image, so I thought I'd
>> look at applying this fix. One thing I'm a little puzzled about:
>> HasNewFinalization is false in my image (I'm using a Cog that's a few
>> months old). Under what conditions is it true?
> I think you have spotted a timing problem here. I put the initTestPair
> and checkTestPair calls together in a startUp: method, which is
> wrong because it does not give the VM an opportunity to do its
> updates, so the results of the test are not valid.
> This is not exactly elegant, but if you force a garbage collection
> between initTestPair and checkTestPair, the test will work properly.
> WeakArray class>>startUp: resuming
> resuming ifFalse: [ ^self ].
> "Check if new finalization is supported by the VM"
> WeakFinalizationList initTestPair.
> Smalltalk garbageCollect.
> WeakFinalizationList checkTestPair.
> self restartFinalizationProcess.
> A better fix is needed - sorry about that. I'm not sure if I'll
> have a chance to look at this today, but the important thing is
> to arrange for the check to be done when the image is started,
> but not to continue repeating the test after it has been
> successfully performed.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev