<div class="gmail_quote"><div>From: Claude Heiland-Allen <<a href="mailto:claudiusmaximus@goto10.org">claudiusmaximus@goto10.org</a>></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
On 23/10/10 23:17, Donn Cave wrote:<br>
> Quoth Claude Heiland-Allen<<a href="mailto:claudiusmaximus@goto10.org">claudiusmaximus@goto10.org</a>>,<br>
> ...<br>
>> The conclusion I drew was that "unsafe" foreign functions block the<br>
>> current "capability" (OS thread) and any "threads" (Haskell forkIO etc)<br>
>> currently scheduled on that capability, but other capabilities and<br>
>> threads continue executing as normal.<br>
<br>
... until GC time when all capabilities must be ready. (?)<br></blockquote><div><br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>John</div></div>