setnumcapabilities001 failure

Ryan Yates fryguybob at gmail.com
Thu Oct 27 16:10:00 UTC 2016


Briefly looking at the code it seems like several global variables involved
should be volatile: n_capabilities, enabled_capabilities, and
capabilities.  Perhaps in a loop like in scheduleDoGC the compiler moves
the reads of n_capabilites or capabilites outside the loop.  A failed
requestSync in that loop would not get updated values for those global
pointers.  That particular loop isn't doing that optimization for me, but I
think it could happen without volatile.

Ryan

On Thu, Oct 27, 2016 at 9:18 AM, Ben Gamari <ben at smart-cactus.org> wrote:

> Simon Marlow <marlowsd at gmail.com> writes:
>
> > I haven't been able to reproduce the failure yet. :(
> >
> Indeed I've also not seen it in my own local builds. It's quite an
> fragile failure.
>
> Cheers,
>
> - Ben
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20161027/5baaf00e/attachment.html>


More information about the ghc-devs mailing list