<p dir="ltr">Excellent, thanks!</p>
<div class="gmail_quote">On 3 Jun 2015 7:58 pm, "Edward Z. Yang" <<a href="mailto:ezyang@mit.edu">ezyang@mit.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The ordering is guaranteed, because full synchronization is used<br>
when threads migrate.  (It goes something like, a capability with<br>
a full run queue grabs all idle capabilities, distributes its<br>
threads to those capabilities, and then releases them.  The act<br>
of acquiring and releasing a capability is a synchronization point.)<br>
<br>
Cheers,<br>
Edward<br>
<br>
Excerpts from David Turner's message of 2015-05-28 09:24:50 -0700:<br>
> Hi,<br>
><br>
> If I make a sequence of FFI calls (on a single Haskell thread) but<br>
> which end up being called from different OS threads, is there any kind<br>
> of ordering guarantee given? More specifically, is there a full memory<br>
> barrier at the point where a Haskell thread migrates to a new OS<br>
> thread?<br>
><br>
> Many thanks,<br>
><br>
> David<br>
</blockquote></div>