Fix system weak sweeping race.
There was a race related to sweeping the intern table with mutators
unpaused. The race occurred when an unused intern was seen as not
referenced by the GC but another thread attempted to create intern
this same string before we swept the system weaks. This caused the
thread to get a pointer to the stale string which was shortly going
to be reclaimed.
The fix moves sweeping the system weaks inside of the pause. This is
a temporary solution since it adds < 1ms of pause time.
1 file changed