From: Claude Heiland-Allen <claudiusmaximus@goto10.org>

On 23/10/10 23:17, Donn Cave wrote:
> Quoth Claude Heiland-Allen<claudiusmaximus@goto10.org>,
> ...
>> The conclusion I drew was that "unsafe" foreign functions block the
>> current "capability" (OS thread) and any "threads" (Haskell forkIO etc)
>> currently scheduled on that capability, but other capabilities and
>> threads continue executing as normal.

... until GC time when all capabilities must be ready. (?)

That's quite interesting.  Thanks very much to everyone who contributed to this.  I think my understanding of the interactions between threads and foreign functions has deepened considerably. I may be able to accomplish what I want after all.

I am somewhat surprised that all capabilities must be ready for GC; I thought with the parallel GC that wouldn't be necessary.  But I don't know much about GC implementations so I try not to let their behavior surprise me too much.

John