[gclist] Re: gclist-digest V3 #84

Lee Webber lee@pharlap.com
Wed, 21 Jun 2000 09:09:55 -0400


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.