Replace startUp with startUp: (was: Re: [squeak-dev] The Trunk: Kernel-mt.987.mcz)

Eliot Miranda eliot.miranda at gmail.com
Thu Feb 4 23:41:47 UTC 2016



> On Feb 4, 2016, at 10:02 AM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
> 
> While we are at it, it would be great to finally get rid of all implementations of #startUp, and use #startUp: instead.
> 
> Why?
> - implementing #startUp: in a class can interfere with the implementations of #startUp in its subclasses (yes, it actually has happened)
> - #startUp runs on image save, and in most cases, like this one, it shouldn't
> 
> I think the same applies to #shutDown and #shutDown:.

+1.  Use of startUp: allows the method to do things only in system startup rather than in return from snapshot and is consequently more economical.


> 
> Levente
> 
>> On Thu, 4 Feb 2016, commits at source.squeak.org wrote:
>> 
>> Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
>> http://source.squeak.org/trunk/Kernel-mt.987.mcz
>> 
>> ==================== Summary ====================
>> 
>> Name: Kernel-mt.987
>> Author: mt
>> Time: 4 February 2016, 3:06:38.350057 pm
>> UUID: acfc6690-1289-41c3-984b-7f781b4a0a3f
>> Ancestors: Kernel-eem.986
>> 
>> Fixes regression with a non-working event handling mechanism on Windows machines, which occured due to the recent removal of InputSensor.
>> 
>> Also fixes the double-interrupt problem when pressing CMD+.
>> 
>> =============== Diff against Kernel-eem.986 ===============
>> 
>> Item was changed:
>> ----- Method: EventSensor class>>initialize (in category 'class initialization') -----
>> initialize
>> 
>>    Smalltalk addToStartUpList: self after: Cursor.
>> +    Smalltalk addToShutDownList: self.
>> +
>>    self installKeyDecodeTable.
>>    self installMouseDecodeTable.
>>    self install.
>> 
>> !
>> 
>> Item was changed:
>> ----- Method: EventSensor>>shutDown (in category 'initialize') -----
>> shutDown
>> +
>>    InterruptWatcherProcess ifNotNil: [
>>        InterruptWatcherProcess terminate.
>> +        InterruptWatcherProcess := nil ].
>> +
>> +    EventTicklerProcess ifNotNil: [
>> +        EventTicklerProcess terminate.
>> +        EventTicklerProcess := nil. ].
>> +
>> +    inputSemaphore ifNotNil:[Smalltalk unregisterExternalObject: inputSemaphore].!
>> -        InterruptWatcherProcess := nil ].!
>> 
>> Item was changed:
>> ----- Method: EventSensor>>startUp (in category 'initialize') -----
>> startUp
>> +
>> +    self initialize.
>> +    self primSetInputSemaphore: (Smalltalk registerExternalObject: inputSemaphore).
>> +
>> +    self installInterruptWatcher.
>> +    self installEventTickler.
>> +
>> +    Smalltalk isMorphic ifTrue: [self flushAllButDandDEvents].
>> +
>> +    "Attempt to discover whether the input semaphore is actually being signaled."
>> +    hasInputSemaphore := false.
>> +    inputSemaphore initSignals.!
>> -    self installInterruptWatcher.!
>> 
>> 
>> 
> 


More information about the Squeak-dev mailing list