@dom96:

> what sort of tasks have you attempted to do using the current GC across 
> threads...

As follows:

1\. Having to write a wrapper around closures using protect/dispose to 
guarantee that the environment doesn't get collected on the thread on which 
they were created when they have been passed to another thread. I suppose that 
if this was a part of a library somewhere, it would be simpler.

2\. Having to create our own version of seq using shared memory and coming up 
with our own memory management for them when they need to be passed between 
threads. Ditto Current =destroy helps with the destruction though.

3\. Having to implement some controller scheduler functionality as globals to 
"own" some resources so that those resources can be passed through them.

I can provide a little example in a few days to show the complexity compared to 
a language with either full mu;ti-threaded GC or even Swift's RC - I well know 
some of RC's limitations and Araq has shown me more, but it is still relatively 
easier to use.

The proposed memory management model seems to fix most of the problems to the 
point that I have begun to emulate part of its functionality within the current 
destructor system, although the current =sink isn't exactly the same as what 
=move will be. I'll show how I've done that in the coming example.

My work arounds might be instructive on what could be provided to make things 
easier. Thanks for the offer.

Reply via email to