Skip to content
  • Simon Marlow's avatar
    Fix a bug in parallel GC synchronisation · 4e088b49
    Simon Marlow authored
    Summary:
    The problem boils down to global variables: in particular gc_threads[],
    which was being modified by a subsequent GC before the previous GC had
    finished with it.  The fix is to not use global variables.
    
    This was causing setnumcapabilities001 to fail (again!).  It's an old
    bug though.
    
    Test Plan:
    Ran setnumcapabilities001 in a loop for a couple of hours.  Before this
    patch it had been failing after a few minutes.  Not a very scientific
    test, but it's the best I have.
    
    Reviewers: bgamari, austin, fryguybob, niteria, erikd
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2654
    4e088b49