Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!agate!library.ucla.edu!csulb.edu!csus.edu!netcom.com!sehyo
From: sehyo@netcom.com (Sehyo Chang)
Subject: Re: c++, smalltalk, and real-time
Message-ID: <sehyoD75H23.nx@netcom.com>
Followup-To: comp.lang.c++,comp.lang.smalltalk,comp.object
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <3mjk4m$ijf@news.Belgium.EU.net> <D73I6G.KMC@world.std.com>
Date: Sun, 16 Apr 1995 22:56:26 GMT
Lines: 35
Sender: sehyo@netcom20.netcom.com
Xref: glinda.oz.cs.cmu.edu comp.lang.c++:123437 comp.lang.smalltalk:22819 comp.object:29656

Jonathan Edwards (edwards@world.std.com) wrote:
: In article <3mjk4m$ijf@news.Belgium.EU.net>,
: Filip Vandamme <bigtime@phil.eunet.be> wrote:
: >
: >  5) Are there any other constraints that OOP in general, or C++/Smalltalk in 
: >     particular impose that are detrimental to solve real time problems, com-
: >     pared to C?

: Smalltalk in particular does not support multithreading and multiprocessing, at
: least in any commercially available implementation. This is not a requirement
: for all real-time systems, but is very important for many performance-critical
: applications (e.g. databases). People are even starting to use multiprocessor
: desktops, and expecting their apps to utilize them. It appears Smalltalk will
: not be able to do so in the forseeable future.

What you are talking about is support for *host* threads(WinNT,Solaris,etc).
It is not language issue. Except ADA, no major languages support concurrency
or threads as part of language. This includes C++. 

So supporting multi-thread/concurrency involving in Smalltalk or C++ involves
providing thread-safe libraries and synchronization mechanism(semaphore,
mutex) and communication path(stream,IPC,etc). C++ delegates to the Host
compilers and API libraries.

Critical issue in Smalltalk are how to run VM in *pre-emptive* threads.
Almost all commercial VMs are writtin to run in a single-address space and
map into a single process(exception being, VisualsWorks for Sequence machine).
It doesn't mean however, Smalltalk "can't" run pre-emptive threads. Some
of research projects such as ConcurrentSmalltalk and DistributedSmalltalk
proved that it can be done. Problem is more of commercialization. I am sure
all Smalltalk vendors are working one way of another to provide these 
capability.

-- sehyo chang

