help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Native thread support


From: Andreas Rosenberg
Subject: Re: Native thread support
Date: Fri, 11 Feb 2022 17:21:31 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1

Greetings,

just a few thoughts regarding multi-threading support. In my job, I'm
maintaining the
VM source code of the Digitalk Smalltalk VM. I have made some
considerations how
Smalltalk could support native multi-threading and there are a lot of
hurdles to overcome:

- the garbage collector: also a multi-threaded garbage collector is
required, which is quite
  complex. Each thread needs at least it's own "short term object
heap". Even in Java a full GC
  requires a "world stop" and each thread must have reached a so called
"safe point" to make
 a full GC work. This requires special means of synchronization for
each thread.

- the language needs new keywords to deal with synchronization issues.

- many base classes must be rewritten to be thread safe

- probably a lot of other problems may exist, that are not visible in
the first place

To my knowledge currently no Smalltalk implementation exists, which can
do multi-threading.
The basic design was done in the 70ties and early 80ties and
multi-threading has not
been considered during that era.

Afaik only Java and C# have a VM that supports automatic garbage
collection with multiple native
threads. I don't know about C#, but the team working on JDK is about 580
people (at least
this is number of different committers on the github project).
Imho a considerable effort is needed, which would only be done, if there
is a "strong need"
and a team of clever people who might achieve this.

Smalltalk is only a niche system and the user base is declining more and
more,
so I hardly see any reason, why anybody would invest in such a project.

Best regards,

Andreas

On 05.02.2022 21:09, Blake McBride wrote:
Greetings,

One of the things that have kept me from all Smalltalks is the lack of
true/native multi-threading support that is able to utilize multiple CPUs.
In today's world, it is a show-stopper for me and many others.

I believe that GST only supports cooperative threads utilizing a single
machine thread.  Adding true native thread support would make GST quite
appealing to a large crowd IMO.  I'd also guess that adding said support
would be difficult but easier in GST than other Smalltalks.

Just a thought.

Thanks!

Blake McBride


reply via email to

[Prev in Thread] Current Thread [Next in Thread]