[Cuis-dev] Morphic's design

Juan Vuletich juan at cuis.st
Sun Aug 13 15:53:06 PDT 2023


Hi Szabolcs,

On 8/13/2023 12:54 PM, Szabolcs Komáromi via Cuis-dev wrote:
> Hi,
>
> I'm reading back through the mailing list to gain some knowledge. I 
> found this comment from Phil:
> https://lists.cuis.st/mailman/archives/cuis-dev/2021-August/003850.html
>> If that is the issue, I think there's a larger problem to be solved.
>> Morphic is inherently not thread safe so you're dealing with an intractable
>> problem (short of re-architecting Morphic.)    Other than marking a morph
>> for redraw, anything else touching Morphic from a background process needs
>> to be wrapped in UISupervisor whenUIinSafeState: [].
>
> What makes Morphic inherently not thread safe? Why the community 
> didn't addressed this shortcoming when the Morphic framework was 
> reachitected anyway?
>
> Regards,
> Szabolcs

The usual wording would be "single threaded". Morphic is single 
threaded, like most (all?) GUI frameworks. You can google "UI thread" or 
"GUI thread" and see.

Synchronization and data protection between threads (we call them 
Processes for historical reasons) as required is the responsibility of 
the application programmer, like in any environment, except maybe 
functional languages and some other special kinds.

In the mail thread you mention, this was conflated with a similar issue 
if stepping messages modified Morphic data structures. There was only a 
single Process involved, so it was about a bug, and not about thread 
safety. I believe the bug was fixed.

So, I don't think we need to redesign Morphic to make it "thread safe", 
although anybody is welcome to experiment if so inclined. What we do 
need to keep doing is fixing bugs, defects and limitations as we face them.

Hope this helps.

-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230813/20c91735/attachment.htm>


More information about the Cuis-dev mailing list