<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="CS">Hi Juan,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="CS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="CS">Thanks very much, all works great; I love you added the states of the processes to the Process Browser - it's so convenient to see right away what is active, what is suspended etc...<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="CS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="CS">> > If you open an image and then open the same image again (to be precise: in my case I doubleclick on squeak.exe, the image opens, then I doubleclick squeak.exe again) then the second OS process starts running in the background
 taking 100% of one CPU's core capacity (and nothing opens) and it needs to be killed from the OS<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="CS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="CS">> Has any other dialect in the Squeak family already fixed this?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="CS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="CS">Squeak and Pharo simply open the same image as read-only and notify the user... For me it's just a reminder I opened a wrong image and close it. It took a me a while to realize in Cuis there's something invisible running
 in the background when I by accident opened the same image twice. Now that I know it doesn't bother me; so I'm just reporting :)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="CS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="CS">Thanks again; it's a real joy to try concurrent prcesses examples in Cuis now :D</span></p>
<p class="MsoNormal">Best,</p>
<p class="MsoNoSpacing"><span lang="CS">--</span></p>
<p class="MsoNoSpacing"><strong><span style="font-family:"Calibri Light",sans-serif;color:#333333;font-weight:normal">Jaromír Matas</span></strong><span style="font-family:"Calibri Light",sans-serif;color:#555555"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><span style="font-family:"Calibri Light",sans-serif;color:#2E75B6">mail@jaromir.net</span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a><br>
<b>Sent: </b>Monday, July 18, 2022 21:44<br>
<b>To: </b><a href="mailto:cuis-dev@lists.cuis.st">Discussion of Cuis Smalltalk</a><br>
<b>Cc: </b><a href="mailto:JuanVuletich@zoho.com">Juan Vuletich</a>; <a href="mailto:mail@jaromir.net">
Jaromir Matas</a><br>
<b>Subject: </b>Re: [Cuis-dev] FW: FW: FW: Freezing UI - can't interrupt via Alt+.</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black">Hi Jaromir,<br>
<br>
On 7/15/2022 3:24 PM, Jaromir Matas via Cuis-dev wrote: <o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black">Hi Juan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Many thanks for sharing your opinion. I agree a UI busy with a long computation is a bit different situation (and complexity level most likely) than an idle UI being blocked. I'm thrilled you've made it possible
 for a system to keep interacting even if its UI is blocked on a semaphore (or a condition variable in a general case). I think this is a very nice improvement from a user perspective; I remember it baffled me some computations worked differently when run forked
 compared to "straight" (without fork). Then someone explained "yeah, that's because it is run in the UI" and it really didn't help me understand why the difference :) Now I know, of course, but for a beginner (or at least for me) the concept of running a Workspace
 example "in the UI" is far from trivial.<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
:) You already contributed lots of stuff that are not "beginner level" at all!<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">> The base image doesn't even include networking code. It will only access local files.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Thank you :)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">> Letting the old Morphic process end by itself may mean that there is more than one process trying to draw the world. And if some higher priority process wakes up, maybe the other morphic process is scheduled
 next. Just pushed a couple of tweaks to reduce the risk as much as possible.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">That helped indeed :) A little new glitch appeared though:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">When you do<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">self halt<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">the world redraw's incomplete or something - see attached snip. Clicking World Menu -> Restore Display fixes it.<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
Fixed. Now at GitHub.<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black"><br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">A small suggestion: the old UI process still identifies as 'Morhic UI' in the Process Browser; would it make sense to rename the old UI to e.g. 'Inactive Morphic UI' ?<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
Fixed too.<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black"><br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">--<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Then there's something I believe has nothing to do with the latest UI modifications but I only noticed it recently by accident:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">If you open an image and then open the same image again (to be precise: in my case I doubleclick on squeak.exe, the image opens, then I doubleclick squeak.exe again) then the second OS process starts running in
 the background taking 100% of one CPU's core capacity (and nothing opens) and it needs to be killed from the OS (Windows process explorer etc)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">It happens in my image Cuis6.0.5171 with the latest VM 3184 but doesn't in Cuis6.0.5069 with VM 3184 (I've just checked - it's regardless of the VM)<o:p></o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
Truth is that I don't know how to do this in a reliable and portable way. Has any other dialect in the Squeak family already fixed this?<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:black">Juan, thanks so much for this experience! I look forward to studying your code :)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">best,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Jaromir<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNoSpacing"><span lang="CS" style="color:black">--</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><strong><span style="font-family:"Calibri Light",sans-serif;font-weight:normal">Jaromír Matas</span></strong><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNoSpacing"><span style="color:black"><a href="mailto:mail@jaromir.net">mail@jaromir.net</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</blockquote>
<p class="MsoNormal"><span style="color:black"><br>
Cheers,<br>
<br>
<o:p></o:p></span></p>
<pre>-- </pre>
<pre>Juan Vuletich</pre>
<pre><a href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a></pre>
<pre><a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a></pre>
<pre><a href="https://github.com/jvuletich">https://github.com/jvuletich</a></pre>
<pre><a href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a></pre>
<pre><a href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a></pre>
<pre><a href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a></pre>
<pre><a href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
<pre><a href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
</div>
</body>
</html>