[Q] Stable Image of MVC?

Sungjin Chun chunsj at embian.com
Sat Jan 21 09:01:24 UTC 2006


Thank you very much. This is exactly what I experienced and your  
suggestion solves my all my problem. Thank you again.

On Jan 21, 2006, at 4:04 AM, Boris Gaertner wrote:

>  "Sungjin Chun" <chunsj at embian.com> wrote:
>
>> Hi,
>>
>> I've managed to create 3.8 version of MVC only image (with Shout +
>> Network-Kernel + Some Unicode Korean font). But found that when my
>> network server code goes wrong, the whole GUI system seems to be
>> wrong. For example, during this state, if I left click to display
>> menu, two menus are displayed with cascaded style(wrong!) and I
>> cannot select any of its item and windows.
> Two unuseable menues at a time indicate that you have problems
> with processes. More specifically, that misbehavior indicates (in MVC,
> Morphic does not exhibit that behavior) that a forked process
> signalled an exception that was not handled by that process.
> You an reproduce that problem quite easy:
> In a MVC project, open a workspace and evaluate:
>
>    [# ( ) at: 3] fork.
>
> you get a red error notification and from that moment on
> your GUI is seriously damaged. You should now drop
> your image and begin again
>
> When you evaluate
>
>  [ [# ( ) at: 3] on: Error
>                     do: [:ex | ]
> ]  fork
>
> in an image with undamaged GUI you will not see an error
> notification and your GUI remains intact.
>
>
>> Now, I want to know what version of squeak (MVC) is stable to be used
>> for development/debugging and etc?
> I think MVC is useable, but it has its limitations and that  
> limitiations
> force you to observe some rules. The rule is that, for MVC,
> a process should always be provided with a very general
> exception handler.
>
> You can do that with the following general method  that
> should be added to the instance protocol of BlockContext:
>
> forkProtected
>     " make sure that the process to be forked has a
>       bullet-proof exception handling. "
>  ^[[ self ] on: Exception
>        do: [:ex | ]
>    ] fork
>
>
> For your actual application, you have to find out where the
> unprotected process is forked. Perhaps somewhere in the network
> code? That would be difficult to find. Once you have found that
> process, you may think about ways to add a suitable exception handler.
> Have you looked into the SqueakDebug.log  file? It may
> contain some valueable hints.
>
> Note also that processes are not always created with fork.
> Sometimes they are created with  BolckContext>>newProcess.
>
> Additional remark:
>
> I tried these examples also with Squeak 3.2. Here there GUI
> remains undamaged, but the error notification does not
> pop up immediately.
>
>> Thanks in advance.
> Hope that helps
> Boris
>




More information about the Squeak-dev mailing list