[chuck-users] Chuck garbage collection needs a manual

Hans Aberg haberg-1 at telia.com
Tue Sep 7 07:55:47 EDT 2010


On 7 Sep 2010, at 10:43, David Rush wrote:

>> GC ought to be wholly independent of the ChucK thread that syncs  
>> the music, since it is only about collecting unused memory. Suppose  
>> you have a collecting GC that runs nicely in the sense that it does  
>> not interrupt ChucK perfect timing. Then it could within that  
>> limitation collect whenever it gets some time from the system to do  
>> it in its own thread.
>
> Both real-time and multi-threaded GC are still considered *hard*  
> issues in the PL community. In a multi-threaded app, you have to  
> address how to keep the mutator alive and kicking during the GC  
> cycle (since the allocation graph is clearly a shared data  
> structure), and in a  real-time app, you have to address the problem  
> of deadlines even though the mutator may cause very uneven GC loads.
>
> It does turn out that both problems are loosely related, but it's  
> not at all easy to adress the issues in any given application.  
> ChucK's reference-counted approach is one that is works quite well  
> in real-time systems, but reference-counting has the downside that  
> it can be very buggy if it is implemented manually, and it is quite  
> easy to cause naive reference counting to leak (so you still have to  
> be acutely aware of the object life-cycle).

ChucK, because of its strong timing, runs in a single thread. So the  
question is if one might put something in another thread. A concurrent  
GC would qualify, at least from the theoretical point of view.



More information about the chuck-users mailing list