[gclist] Re: gclist-digest V3 #84
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 <email@example.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
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.