Withdrawn: 8317049: GenShen: Very rare loss of function for ShenandoahControlThread::_regulator_lock

Kelvin Nilsen kdnilsen at openjdk.org
Mon Oct 2 22:58:17 UTC 2023


On Thu, 28 Sep 2023 17:06:04 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> We have observed that we very rarely miss _regulator_lock notifications.  We have identified the root cause to be a race, which occurs when the ShenandoahControlThread notifies the _regulator_lock before the ShenandoahRegulatorThread has begun to wait for the notification.
> 
> This change forces the ShenandoahControlThread to wait until the ShenandoahRegulatorThread is inside its wait() invocation.  It does so by acquiring the Mutator lock for _regulator_thread before notifying the control thread.  The control thread must acquire this lock before it can notify.  The control thread will not be able to acquire the lock until the regulator thread releases the lock by invoking ml.wait().

This pull request has been closed without being integrated.

-------------

PR: https://git.openjdk.org/shenandoah/pull/332


More information about the shenandoah-dev mailing list