[squeak-dev] The Trunk: Kernel-cmm.911.mcz

Bert Freudenberg bert at freudenbergs.de
Mon Mar 16 12:47:05 UTC 2015


Great, thank you! This has been really annoying. 

- Bert -

On 16.03.2015, at 04:31, Chris Muller <asqueaker at gmail.com> wrote:
> 
> Levente wrote:
> 
>> ... I think the error can occur if you use the same WorldState object from multiple UI processes (but doing that is a bad
>> idea).
> 
> So there it is, that big stack (from my other post) is the
> userInterruptWatcher waking up from my pressing the interrupt key.
> How did it find its way into WorldState to do some
> drawWorld:submorphs:invalidAreasOn:'ing?  It happened before
> userInterruptWater even attempted to open the debugger, because it
> first executes:
> 
>   SoundService default shutDown.
> 
> and even though the SoundService's 'default' instance was nil, it
> needed to construct one just so it can forthwith tell it to #shutDown.
> Brilliant!  :)
> 
> It gets better.  The system has to know *which kind* of SoundService
> it should construct before it can construct it and tell it to
> shutDown.  But there are two!  BaseSoundSystem and DummySoundSystem.
> But, oh, which one?  Hm, maybe best in this situation to pop up a menu
> to ask the user (not)!
> 
> And so to pop up such a menu it is now into the WorldState machinery
> and image meltdown.
> 
> I hope papering over it with this simple guard before the insanity
> starts in lowSpaceWatcher will help, but something feels unsettling
> about the distance between the cause and the symptom.
> 
> Accessing WorldState from multiple UI processes is a bad idea, for
> sure, but IF it happens, the penalty is of a locked image is pretty
> strict..
> 
> 
> 
> On Sun, Mar 15, 2015 at 10:12 PM,  <commits at source.squeak.org> wrote:
>> Chris Muller uploaded a new version of Kernel to project The Trunk:
>> http://source.squeak.org/trunk/Kernel-cmm.911.mcz
>> 
>> ==================== Summary ====================
>> 
>> Name: Kernel-cmm.911
>> Author: cmm
>> Time: 15 March 2015, 10:12:04.602 pm
>> UUID: 0d5cd697-a536-47ec-8c0c-0b8b38bf297a
>> Ancestors: Kernel-ul.910
>> 
>> - Don't create a SoundSystem just to send #shutDown to it, so that its lazy-initialization will not try to pop up a menu asking the user which type to create and, in the process, invoking WorldState behaviors from outside the UI process and colliding with the new intercycle pause implementation.
>> 
>> =============== Diff against Kernel-ul.910 ===============
>> 
>> Item was changed:
>>  ----- Method: InputSensor>>userInterruptWatcher (in category 'user interrupts') -----
>>  userInterruptWatcher
>>        "Wait for user interrupts and open a notifier on the active process when one occurs."
>> -
>>        [ InterruptSemaphore wait.
>>        Display deferUpdates: false.
>> +       SoundService defaultOrNil ifNotNil: [ : soundSystem | soundSystem shutDown ].
>> -       SoundService default shutDown.
>>        Smalltalk handleUserInterrupt ] repeat!
>> 
>> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4115 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150316/f976c475/smime.bin


More information about the Squeak-dev mailing list