This is an archive of the discontinued LLVM Phabricator instance.

Fix thread race between SectionPiece's OutputOff and Live members
ClosedPublic

Authored by dim on Jan 9 2018, 2:53 PM.

Details

Summary

As reported in bug 35788, rL316280 reintroduces a race between two
members of SectionPiece, which share the same 64 bit memory location.

Reduce the Hash member by 1 bit, and move the Live member next to it,
instead, while making OuputOff use the full 64 bit again.

Adjust getShardId to cope with Hashes being 31 bits wide (I hope I
interpreted that function correctly... :)