Fix a rare parallel GC bug

Authored by simonmar.

Description

Fix a rare parallel GC bug

When there's a conflict between two threads evacuating the same TSO,
in some cases we would update the incall->tso pointer to point to the
wrong copy of the TSO. This would get fixed during the next GC, but
if the thread completed in the meantime, it would likely crash. We're
seeing this about once per day on a heavily loaded machine (it varies
a lot though).

(cherry picked from commit a11f71eff15ba2706cbb2ee29aaf7350909e0d2f)

Details

Committed
austinOct 27 2014, 10:59 AM
Parents
rGHC04e21ae3c47f: pprC: declare extern cmm primitives as functions, not data
Branches
Unknown
Tags
Unknown