[gclist] Re: gclist-digest V3 #84

Scott Meyer smeyer@us.oracle.com
Wed, 21 Jun 2000 11:31:38 -0700


At 09:09 AM 6/21/00 -0400, Lee Webber wrote:
>At 07:14 AM 6/21/00 -0500, Charles Fiterman wrote:
>>At 11:57 AM 6/21/00 +1200, Richard A. O'Keefe wrote:
>>>Charles Fiterman <cef@geodesic.com> wrote:
>>>	Most programs these days are multi threaded which means even if
>>>	collection occurs only at allocation points any thread can see
>>>	it as happening anywhere.
>>>	
>>>Surely Erlang can't be the only system with a per-thread heap?
>>>(The concurrent version of Quintus Prolog, which Tim Lindholm built,
>>>also did this, if I remember correctly.)  The reason for having a
>>>per-thread heap is precisely so that other threads *don't* need to
>>>be stopped.  Erlang does have "binaries" that are shared between threads,
>>>but they can't contain pointers, so a form of reference counting would
>>>work nicely for them.
>>
>>Erlang must be a functional language otherwise you'd have inter heap
>>pointers. 
>
>Any implementation can avoid inter-thread pointers if all inter-thread
>communications have deep-copy semantics.  This is limiting of course (and
>impossible unless deep-copy is implemented or just mandated), but it solves
>a lot of problems such as this and it makes trivial extending the system to
>true distributed processing.

The unglamorous way of saying this is: "You have just re-invented the
process."

-Scott
Scott Meyer                                   415 506 0987
Principal Member of Technical Staff
mailto:smeyer@us.oracle.com
Oracle - Languages & Relational Technology    standard disclaimer