[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
|